Namespaces

Enumerations

enum ObjdumpOptID
Name Value
OBJDUMP_INVALID 0
Defined at line 6 of file llvm/tools/llvm-objdump/ObjdumpOptID.h
enum 
Name Value
Max7DecimalOffset 9999999U
Defined at line 14 of file llvm/lib/BinaryFormat/COFF.cpp
enum 
Name Value
MaxBase64Offset 0xFFFFFFFFFULL
Defined at line 15 of file llvm/lib/BinaryFormat/COFF.cpp
enum LineTableOpCode
Name Value
EndSequence 0x00
SetFile 0x01
AdvancePC 0x02
AdvanceLine 0x03
FirstSpecial 0x04
Defined at line 16 of file llvm/lib/DebugInfo/GSYM/LineTable.cpp
enum blake3_flags
Name Value
CHUNK_START 1 << 0
CHUNK_END 1 << 1
PARENT 1 << 2
ROOT 1 << 3
KEYED_HASH 1 << 4
DERIVE_KEY_CONTEXT 1 << 5
DERIVE_KEY_MATERIAL 1 << 6
Defined at line 19 of file llvm/lib/Support/BLAKE3/blake3_impl.h
enum AsmWriterFlavorTy
Name Value
ATT 0
Intel 1
Defined at line 20 of file llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
enum OrderKind
Name Value
InOrder 0
OutOfOrder 1
Defined at line 21 of file llvm/unittests/DebugInfo/DWARF/DWARFDebugAbbrevTest.cpp
enum TransformKind
Name Value
Normalize 0
Denormalize 1
Defined at line 22 of file llvm/lib/Analysis/ScalarEvolutionNormalization.cpp
enum InfoType
Name Value
EndOfList 0u
LineTableInfo 1u
InlineInfo 2u
MergedFunctionsInfo 3u
CallSiteInfo 4u
Defined at line 22 of file llvm/lib/DebugInfo/GSYM/FunctionInfo.cpp
enum RawSegments
Name Value
none 0
data 1
linkedit 1 << 1
Defined at line 23 of file llvm/tools/obj2yaml/obj2yaml.h
enum 
Name Value
JIT_NOACTION 0
JIT_REGISTER_FN 1
JIT_UNREGISTER_FN 2
Defined at line 23 of file llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.h
enum InlinePriorityMode
Name Value
Size 0
Cost 1
CostBenefit 2
ML 3
Defined at line 25 of file llvm/lib/Analysis/InlineOrder.cpp
enum TBDFlags
Name Value
None 0U
FlatNamespace 1U << 0
NotApplicationExtensionSafe 1U << 1
InstallAPI 1U << 2
SimulatorSupport 1U << 3
OSLibNotForSharedCache 1U << 4
LLVM_BITMASK_LARGEST_ENUMERATOR OSLibNotForSharedCache
Defined at line 27 of file llvm/lib/TextAPI/TextStubCommon.h
enum Token
Name Value
tok_eof -1
tok_def -2
tok_extern -3
tok_identifier -4
tok_number -5
Defined at line 29 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp
enum ReportStyleOptions
Name Value
human_output 0
json_output 1
Defined at line 30 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp
enum 
Name Value
LLVMAnyComdatSelectionKind 0
LLVMExactMatchComdatSelectionKind 1
LLVMLargestComdatSelectionKind 2
LLVMNoDeduplicateComdatSelectionKind 3
LLVMSameSizeComdatSelectionKind 4
Defined at line 30 of file llvm/include/llvm-c/Comdat.h
enum 
Name Value
LLVMLinkerDestroySource 0
LLVMLinkerPreserveSource_Removed 1
Defined at line 31 of file llvm/include/llvm-c/Linker.h
enum 
Name Value
IndexWidth 7
FullIndexWidth IndexWidth + 4
HistOpcWidth 40
Defined at line 31 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
enum RankFlags
Name Value
RF_Z_EXTENSION 1 << 6
RF_S_EXTENSION 2 << 6
RF_X_EXTENSION 3 << 6
RF_UNKNOWN_MULTILETTER_EXTENSION 4 << 6
Defined at line 31 of file llvm/lib/Support/RISCVISAUtils.cpp
enum OutputCostKind
Name Value
RecipThroughput 0
Latency 1
CodeSize 2
SizeAndLatency 3
All 4
Defined at line 31 of file llvm/lib/Analysis/CostModel.cpp
enum HashFunctionMode
Name Value
Local 0
BuildingHashFuncion 1
UsingHashFunction 2
Defined at line 33 of file llvm/include/llvm/CodeGen/GlobalMergeFunctions.h
enum CGDataFormat
Name Value
Invalid 0
Text 1
Binary 2
Defined at line 33 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp
enum 
Name Value
LLVMAbortProcessAction 0
LLVMPrintMessageAction 1
LLVMReturnStatusAction 2
Defined at line 35 of file llvm/include/llvm-c/Analysis.h
enum 
Name Value
LLVMDIFlagZero 0
LLVMDIFlagPrivate 1
LLVMDIFlagProtected 2
LLVMDIFlagPublic 3
LLVMDIFlagFwdDecl 1 << 2
LLVMDIFlagAppleBlock 1 << 3
LLVMDIFlagReservedBit4 1 << 4
LLVMDIFlagVirtual 1 << 5
LLVMDIFlagArtificial 1 << 6
LLVMDIFlagExplicit 1 << 7
LLVMDIFlagPrototyped 1 << 8
LLVMDIFlagObjcClassComplete 1 << 9
LLVMDIFlagObjectPointer 1 << 10
LLVMDIFlagVector 1 << 11
LLVMDIFlagStaticMember 1 << 12
LLVMDIFlagLValueReference 1 << 13
LLVMDIFlagRValueReference 1 << 14
LLVMDIFlagReserved 1 << 15
LLVMDIFlagSingleInheritance 1 << 16
LLVMDIFlagMultipleInheritance 2 << 16
LLVMDIFlagVirtualInheritance 3 << 16
LLVMDIFlagIntroducedVirtual 1 << 18
LLVMDIFlagBitField 1 << 19
LLVMDIFlagNoReturn 1 << 20
LLVMDIFlagTypePassByValue 1 << 22
LLVMDIFlagTypePassByReference 1 << 23
LLVMDIFlagEnumClass 1 << 24
LLVMDIFlagFixedEnum LLVMDIFlagEnumClass
LLVMDIFlagThunk 1 << 25
LLVMDIFlagNonTrivial 1 << 26
LLVMDIFlagBigEndian 1 << 27
LLVMDIFlagLittleEndian 1 << 28
LLVMDIFlagIndirectVirtualBase (1 << 2) | (1 << 5)
LLVMDIFlagAccessibility LLVMDIFlagPrivate | LLVMDIFlagProtected | LLVMDIFlagPublic
LLVMDIFlagPtrToMemberRep LLVMDIFlagSingleInheritance | LLVMDIFlagMultipleInheritance | LLVMDIFlagVirtualInheritance
Defined at line 35 of file llvm/include/llvm-c/DebugInfo.h
enum ConvertFormats
Name Value
BINARY 0
YAML 1
CHROME_TRACE_EVENT 2
Defined at line 36 of file llvm/tools/llvm-xray/xray-converter.cpp
enum LLVMByteOrdering
Name Value
LLVMBigEndian 0
LLVMLittleEndian 1
Defined at line 37 of file llvm/include/llvm-c/Target.h
enum IR
Name Value
LLVM 0
SBoxNoTracking 1
SBoxTracking 2
Defined at line 38 of file llvm/benchmarks/SandboxIRBench.cpp
enum CGDataAction
Name Value
Convert 0
Merge 1
Show 2
Defined at line 39 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp
enum 
Name Value
LLVMCodeGenLevelNone 0
LLVMCodeGenLevelLess 1
LLVMCodeGenLevelDefault 2
LLVMCodeGenLevelAggressive 3
Defined at line 39 of file llvm/include/llvm-c/TargetMachine.h
enum UnicodeEncodingForm
Name Value
UEF_UTF32_LE 0
UEF_UTF32_BE 1
UEF_UTF16_LE 2
UEF_UTF16_BE 3
UEF_UTF8 4
UEF_Unknown 5
Defined at line 41 of file llvm/lib/Support/YAMLParser.cpp
enum 
Name Value
LLVMBinaryTypeArchive 0
LLVMBinaryTypeMachOUniversalBinary 1
LLVMBinaryTypeCOFFImportFile 2
LLVMBinaryTypeIR 3
LLVMBinaryTypeWinRes 4
LLVMBinaryTypeCOFF 5
LLVMBinaryTypeELF32L 6
LLVMBinaryTypeELF32B 7
LLVMBinaryTypeELF64L 8
LLVMBinaryTypeELF64B 9
LLVMBinaryTypeMachO32L 10
LLVMBinaryTypeMachO32B 11
LLVMBinaryTypeMachO64L 12
LLVMBinaryTypeMachO64B 13
LLVMBinaryTypeWasm 14
LLVMBinaryTypeOffload 15
LLVMBinaryTypeDXcontainer 16
Defined at line 41 of file llvm/include/llvm-c/Object.h
enum LLVMRemarkType
Name Value
LLVMRemarkTypeUnknown 0
LLVMRemarkTypePassed 1
LLVMRemarkTypeMissed 2
LLVMRemarkTypeAnalysis 3
LLVMRemarkTypeAnalysisFPCommute 4
LLVMRemarkTypeAnalysisAliasing 5
LLVMRemarkTypeFailure 6
Defined at line 42 of file llvm/include/llvm-c/Remarks.h
enum OptionFlags
Name Value
OptFlag1 (1 << 4)
OptFlag2 (1 << 5)
OptFlag3 (1 << 6)
Defined at line 43 of file llvm/unittests/Option/OptionParsingTest.cpp
enum LoopDeletionResult
Name Value
Unmodified 0
Modified 1
Deleted 2
Defined at line 45 of file llvm/lib/Transforms/Scalar/LoopDeletion.cpp
enum 
Name Value
LLVMRelocDefault 0
LLVMRelocStatic 1
LLVMRelocPIC 2
LLVMRelocDynamicNoPic 3
LLVMRelocROPI 4
LLVMRelocRWPI 5
LLVMRelocROPI_RWPI 6
Defined at line 46 of file llvm/include/llvm-c/TargetMachine.h
enum TutorialVersion
Name Value
V1 0
V2 1
V3 2
Defined at line 47 of file llvm/examples/IRTransforms/SimplifyCFG.cpp
enum OptionVisibility
Name Value
SubtoolVis (1 << 2)
MultiLineVis (1 << 3)
Defined at line 49 of file llvm/unittests/Option/OptionParsingTest.cpp
enum DebugLocVerifyLevel
Name Value
None 0
Legalizations 1
LegalizationsAndArtifactCombiners 2
Defined at line 49 of file llvm/lib/CodeGen/GlobalISel/Legalizer.cpp
enum IntrinsicCostStrategy
Name Value
InstructionCost 0
IntrinsicCost 1
TypeBasedIntrinsicCost 2
Defined at line 51 of file llvm/lib/Analysis/CostModel.cpp
enum SkipMLPolicyCriteria
Name Value
Never 0
IfCallerIsNotCold 1
Defined at line 53 of file llvm/lib/Analysis/MLInlineAdvisor.cpp
enum ActionType
Name Value
AC_Execute 0
AC_PrintObjectLineInfo 1
AC_PrintLineInfo 2
AC_PrintDebugLineInfo 3
AC_Verify 4
Defined at line 53 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
enum ID
Name Value
OPT_INVALID 0
Defined at line 54 of file llvm/tools/llvm-ifs/llvm-ifs.cpp
enum 
Name Value
GCOV_ARC_ON_TREE 1 << 0
GCOV_TAG_FUNCTION 0x01000000
GCOV_TAG_BLOCKS 0x01410000
GCOV_TAG_ARCS 0x01430000
GCOV_TAG_LINES 0x01450000
Defined at line 54 of file llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
enum 
Name Value
LTO_SYMBOL_ALIGNMENT_MASK 0x0000001F
LTO_SYMBOL_PERMISSIONS_MASK 0x000000E0
LTO_SYMBOL_PERMISSIONS_CODE 0x000000A0
LTO_SYMBOL_PERMISSIONS_DATA 0x000000C0
LTO_SYMBOL_PERMISSIONS_RODATA 0x00000080
LTO_SYMBOL_DEFINITION_MASK 0x00000700
LTO_SYMBOL_DEFINITION_REGULAR 0x00000100
LTO_SYMBOL_DEFINITION_TENTATIVE 0x00000200
LTO_SYMBOL_DEFINITION_WEAK 0x00000300
LTO_SYMBOL_DEFINITION_UNDEFINED 0x00000400
LTO_SYMBOL_DEFINITION_WEAKUNDEF 0x00000500
LTO_SYMBOL_SCOPE_MASK 0x00003800
LTO_SYMBOL_SCOPE_INTERNAL 0x00000800
LTO_SYMBOL_SCOPE_HIDDEN 0x00001000
LTO_SYMBOL_SCOPE_PROTECTED 0x00002000
LTO_SYMBOL_SCOPE_DEFAULT 0x00001800
LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN 0x00002800
LTO_SYMBOL_COMDAT 0x00004000
LTO_SYMBOL_ALIAS 0x00008000
Defined at line 54 of file llvm/include/llvm-c/lto.h
enum LTOBitcodeEmbedding
Name Value
DoNotEmbed 0
EmbedOptimized 1
EmbedPostMergePreOptimized 2
Defined at line 55 of file llvm/lib/LTO/LTOBackend.cpp
enum LinkMode
Name Value
LinkModeAuto 0
LinkModeShared 1
LinkModeStatic 2
Defined at line 55 of file llvm/tools/llvm-config/llvm-config.cpp
enum AccountOutputFormats
Name Value
TEXT 0
CSV 1
Defined at line 56 of file llvm/tools/llvm-xray/xray-account.cpp
enum 
Name Value
LLVMCodeModelDefault 0
LLVMCodeModelJITDefault 1
LLVMCodeModelTiny 2
LLVMCodeModelSmall 3
LLVMCodeModelKernel 4
LLVMCodeModelMedium 5
LLVMCodeModelLarge 6
Defined at line 56 of file llvm/include/llvm-c/TargetMachine.h
enum 
Name Value
RecursionLimit 3
Defined at line 57 of file llvm/lib/Analysis/InstructionSimplify.cpp
enum 
Name Value
LLVMJITSymbolGenericFlagsNone 0
LLVMJITSymbolGenericFlagsExported 1U << 0
LLVMJITSymbolGenericFlagsWeak 1U << 1
LLVMJITSymbolGenericFlagsCallable 1U << 2
LLVMJITSymbolGenericFlagsMaterializationSideEffectsOnly 1U << 3
Defined at line 57 of file llvm/include/llvm-c/Orc.h
enum ReportKind
Name Value
Error 0
Summary 1
Discrepancy 2
Full 3
Defined at line 59 of file llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp
enum AllocType
Name Value
OpNewLike 1<<0
MallocLike 1<<1
StrDupLike 1<<2
MallocOrOpNewLike MallocLike | OpNewLike
AllocLike MallocOrOpNewLike | StrDupLike
AnyAlloc AllocLike
Defined at line 59 of file llvm/lib/Analysis/MemoryBuiltins.cpp
enum FilesPresent
Name Value
A 0
B 1
BOTH 2
Defined at line 60 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp
enum 
Name Value
LLVMRet 1
LLVMBr 2
LLVMSwitch 3
LLVMIndirectBr 4
LLVMInvoke 5
LLVMUnreachable 7
LLVMCallBr 67
LLVMFNeg 66
LLVMAdd 8
LLVMFAdd 9
LLVMSub 10
LLVMFSub 11
LLVMMul 12
LLVMFMul 13
LLVMUDiv 14
LLVMSDiv 15
LLVMFDiv 16
LLVMURem 17
LLVMSRem 18
LLVMFRem 19
LLVMShl 20
LLVMLShr 21
LLVMAShr 22
LLVMAnd 23
LLVMOr 24
LLVMXor 25
LLVMAlloca 26
LLVMLoad 27
LLVMStore 28
LLVMGetElementPtr 29
LLVMTrunc 30
LLVMZExt 31
LLVMSExt 32
LLVMFPToUI 33
LLVMFPToSI 34
LLVMUIToFP 35
LLVMSIToFP 36
LLVMFPTrunc 37
LLVMFPExt 38
LLVMPtrToInt 39
LLVMPtrToAddr 69
LLVMIntToPtr 40
LLVMBitCast 41
LLVMAddrSpaceCast 60
LLVMICmp 42
LLVMFCmp 43
LLVMPHI 44
LLVMCall 45
LLVMSelect 46
LLVMUserOp1 47
LLVMUserOp2 48
LLVMVAArg 49
LLVMExtractElement 50
LLVMInsertElement 51
LLVMShuffleVector 52
LLVMExtractValue 53
LLVMInsertValue 54
LLVMFreeze 68
LLVMFence 55
LLVMAtomicCmpXchg 56
LLVMAtomicRMW 57
LLVMResume 58
LLVMLandingPad 59
LLVMCleanupRet 61
LLVMCatchRet 62
LLVMCatchPad 63
LLVMCleanupPad 64
LLVMCatchSwitch 65
Defined at line 61 of file llvm/include/llvm-c/Core.h
enum SuppressLevel
Name Value
SUPPRESSION_DISABLE 0
SUPPRESSION_LEVEL1 1
SUPPRESSION_LEVEL2 2
Defined at line 63 of file llvm/utils/TableGen/DecoderEmitter.cpp
enum 
Name Value
LLVMAssemblyFile 0
LLVMObjectFile 1
Defined at line 66 of file llvm/include/llvm-c/TargetMachine.h
enum CmpType
Name Value
Equal 0
Contains 1
Defined at line 67 of file llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp
enum SortField
Name Value
FUNCID 0
COUNT 1
MIN 2
MED 3
PCT90 4
PCT99 5
MAX 6
SUM 7
FUNC 8
Defined at line 67 of file llvm/tools/llvm-xray/xray-account.cpp
enum MallocFamily
Name Value
Malloc 0
CPPNew 1
CPPNewAligned 2
CPPNewArray 3
CPPNewArrayAligned 4
MSVCNew 5
MSVCArrayNew 6
VecMalloc 7
KmpcAllocShared 8
Defined at line 68 of file llvm/lib/Analysis/MemoryBuiltins.cpp
enum 
Name Value
LLVMGlobalISelAbortEnable 0
LLVMGlobalISelAbortDisable 1
LLVMGlobalISelAbortDisableWithDiag 2
Defined at line 71 of file llvm/include/llvm-c/TargetMachine.h
enum radix
Name Value
none 0
octal 1
hexadecimal 2
decimal 3
Defined at line 74 of file llvm/tools/llvm-strings/llvm-strings.cpp
enum DebugLogging
Name Value
None 0
Normal 1
Verbose 2
Quiet 3
Defined at line 75 of file llvm/tools/opt/NewPMDriver.cpp
enum StackOutputFormat
Name Value
HUMAN 0
FLAMETOOL 1
Defined at line 77 of file llvm/tools/llvm-xray/xray-stacks.cpp
enum Operation
Name Value
None 0
Static 1
Defined at line 79 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp
enum 
Name Value
LTO_DEBUG_MODEL_NONE 0
LTO_DEBUG_MODEL_DWARF 1
Defined at line 79 of file llvm/include/llvm-c/lto.h
enum 
Name Value
LLVMDWARFSourceLanguageC89 0
LLVMDWARFSourceLanguageC 1
LLVMDWARFSourceLanguageAda83 2
LLVMDWARFSourceLanguageC_plus_plus 3
LLVMDWARFSourceLanguageCobol74 4
LLVMDWARFSourceLanguageCobol85 5
LLVMDWARFSourceLanguageFortran77 6
LLVMDWARFSourceLanguageFortran90 7
LLVMDWARFSourceLanguagePascal83 8
LLVMDWARFSourceLanguageModula2 9
LLVMDWARFSourceLanguageJava 10
LLVMDWARFSourceLanguageC99 11
LLVMDWARFSourceLanguageAda95 12
LLVMDWARFSourceLanguageFortran95 13
LLVMDWARFSourceLanguagePLI 14
LLVMDWARFSourceLanguageObjC 15
LLVMDWARFSourceLanguageObjC_plus_plus 16
LLVMDWARFSourceLanguageUPC 17
LLVMDWARFSourceLanguageD 18
LLVMDWARFSourceLanguagePython 19
LLVMDWARFSourceLanguageOpenCL 20
LLVMDWARFSourceLanguageGo 21
LLVMDWARFSourceLanguageModula3 22
LLVMDWARFSourceLanguageHaskell 23
LLVMDWARFSourceLanguageC_plus_plus_03 24
LLVMDWARFSourceLanguageC_plus_plus_11 25
LLVMDWARFSourceLanguageOCaml 26
LLVMDWARFSourceLanguageRust 27
LLVMDWARFSourceLanguageC11 28
LLVMDWARFSourceLanguageSwift 29
LLVMDWARFSourceLanguageJulia 30
LLVMDWARFSourceLanguageDylan 31
LLVMDWARFSourceLanguageC_plus_plus_14 32
LLVMDWARFSourceLanguageFortran03 33
LLVMDWARFSourceLanguageFortran08 34
LLVMDWARFSourceLanguageRenderScript 35
LLVMDWARFSourceLanguageBLISS 36
LLVMDWARFSourceLanguageKotlin 37
LLVMDWARFSourceLanguageZig 38
LLVMDWARFSourceLanguageCrystal 39
LLVMDWARFSourceLanguageC_plus_plus_17 40
LLVMDWARFSourceLanguageC_plus_plus_20 41
LLVMDWARFSourceLanguageC17 42
LLVMDWARFSourceLanguageFortran18 43
LLVMDWARFSourceLanguageAda2005 44
LLVMDWARFSourceLanguageAda2012 45
LLVMDWARFSourceLanguageHIP 46
LLVMDWARFSourceLanguageAssembly 47
LLVMDWARFSourceLanguageC_sharp 48
LLVMDWARFSourceLanguageMojo 49
LLVMDWARFSourceLanguageGLSL 50
LLVMDWARFSourceLanguageGLSL_ES 51
LLVMDWARFSourceLanguageHLSL 52
LLVMDWARFSourceLanguageOpenCL_CPP 53
LLVMDWARFSourceLanguageCPP_for_OpenCL 54
LLVMDWARFSourceLanguageSYCL 55
LLVMDWARFSourceLanguageRuby 56
LLVMDWARFSourceLanguageMove 57
LLVMDWARFSourceLanguageHylo 58
LLVMDWARFSourceLanguageMetal 59
LLVMDWARFSourceLanguageMips_Assembler 60
LLVMDWARFSourceLanguageGOOGLE_RenderScript 61
LLVMDWARFSourceLanguageBORLAND_Delphi 62
Defined at line 79 of file llvm/include/llvm-c/DebugInfo.h
enum InputLanguages
Name Value
None 0
IR 1
MIR 2
Defined at line 80 of file llvm/tools/llvm-reduce/llvm-reduce.cpp
enum SplitByCategoryType
Name Value
SBCT_ByModuleId 0
SBCT_ByKernel 1
SBCT_None 2
Defined at line 80 of file llvm/tools/llvm-split/llvm-split.cpp
enum SectionType
Name Value
GOT 0
Stubs 1
AArch32Stubs 2
Other 3
Defined at line 82 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp
enum DefaultOnOff
Name Value
Default 0
Enable 1
Disable 2
Defined at line 86 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
enum UseBFI
Name Value
None 0
PGO 1
All 2
Defined at line 87 of file llvm/lib/CodeGen/MachineLICM.cpp
enum MatrixLayoutTy
Name Value
ColumnMajor 0
RowMajor 1
Defined at line 87 of file llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
enum 
Name Value
LTO_CODEGEN_PIC_MODEL_STATIC 0
LTO_CODEGEN_PIC_MODEL_DYNAMIC 1
LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC 2
LTO_CODEGEN_PIC_MODEL_DEFAULT 3
Defined at line 87 of file llvm/include/llvm-c/lto.h
enum DWARFVerify
Name Value
None 0
Input 1 << 0
Output 1 << 1
OutputOnValidInput 1 << 2
All Input | Output
Auto Input | OutputOnValidInput
Default Auto
Defined at line 89 of file llvm/tools/dsymutil/dsymutil.cpp
enum OptParsingState
Name Value
NotParsed 0
Early 1
Done 2
Defined at line 90 of file llvm/tools/lto/lto.cpp
enum AggregationType
Name Value
TOTAL_TIME 0
INVOCATION_COUNT 1
Defined at line 92 of file llvm/tools/llvm-xray/xray-stacks.cpp
enum SortDirection
Name Value
ASCENDING 0
DESCENDING 1
Defined at line 94 of file llvm/tools/llvm-xray/xray-account.cpp
enum cpu_feature
Name Value
SSE2 1 << 0
SSSE3 1 << 1
SSE41 1 << 2
AVX 1 << 3
AVX2 1 << 4
AVX512F 1 << 5
AVX512VL 1 << 6
UNDEFINED 1 << 30
Defined at line 94 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c
enum SpeculateKind
Name Value
None 0
Simple 1
Defined at line 96 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
enum DebugifyMode
Name Value
NoDebugify 0
SyntheticDebugInfo 1
OriginalDebugInfo 2
Defined at line 98 of file llvm/include/llvm/Transforms/Utils/Debugify.h
enum ThinLTOModes
Name Value
THINLINK 0
THINDISTRIBUTE 1
THINEMITIMPORTS 2
THINPROMOTE 3
THINIMPORT 4
THININTERNALIZE 5
THINOPT 6
THINCODEGEN 7
THINALL 8
Defined at line 99 of file llvm/tools/llvm-lto/llvm-lto.cpp
enum 
Name Value
UndefLocNo ~0U
Defined at line 101 of file llvm/lib/CodeGen/LiveDebugVariables.cpp
enum CanMerge
Name Value
No 0
Yes 1
Defined at line 103 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp
enum FusionDependenceAnalysisChoice
Name Value
FUSION_DEPENDENCE_ANALYSIS_SCEV 0
FUSION_DEPENDENCE_ANALYSIS_DA 1
FUSION_DEPENDENCE_ANALYSIS_ALL 2
Defined at line 105 of file llvm/lib/Transforms/Scalar/LoopFuse.cpp
enum MaskedICmpType
Name Value
AMask_AllOnes 1
AMask_NotAllOnes 2
BMask_AllOnes 4
BMask_NotAllOnes 8
Mask_AllZeros 16
Mask_NotAllZeros 32
AMask_Mixed 64
AMask_NotMixed 128
BMask_Mixed 256
BMask_NotMixed 512
Defined at line 111 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
enum OutputStyle
Name Value
LLVM 0
GNU 1
JSON 2
Defined at line 113 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
enum Command
Name Value
Code 0
Data 1
Frame 2
Defined at line 115 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
enum DumpInputValue
Name Value
DumpInputNever 0
DumpInputFail 1
DumpInputAlways 2
DumpInputHelp 3
Defined at line 119 of file llvm/utils/FileCheck/FileCheck.cpp
enum OutputFileType
Name Value
OFT_Null 0
OFT_AssemblyFile 1
OFT_ObjectFile 2
Defined at line 123 of file llvm/tools/llvm-mc/llvm-mc.cpp
enum DotScope
Name Value
All 0
Alloc 1
Context 2
Defined at line 130 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
enum LinkageNameOption
Name Value
DefaultLinkageNames 0
AllLinkageNames 1
AbstractLinkageNames 2
Defined at line 136 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
enum DumpInputFilterValue
Name Value
DumpInputFilterError 0
DumpInputFilterAnnotation 1
DumpInputFilterAnnotationFull 2
DumpInputFilterAll 3
Defined at line 140 of file llvm/utils/FileCheck/FileCheck.cpp
enum SkipType
Name Value
NONE 0
LACK_SCHED 1
PARSE_FAILURE 2
ANY_FAILURE 3
Defined at line 143 of file llvm/tools/llvm-mca/llvm-mca.cpp
enum PGOMapFeaturesEnum
Name Value
None 0
FuncEntryCount 1
BBFreq 2
BrProb 3
PropellerCFG 4
All 5
Defined at line 148 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
enum 
Name Value
LLVMVoidTypeKind 0
LLVMHalfTypeKind 1
LLVMFloatTypeKind 2
LLVMDoubleTypeKind 3
LLVMX86_FP80TypeKind 4
LLVMFP128TypeKind 5
LLVMPPC_FP128TypeKind 6
LLVMLabelTypeKind 7
LLVMIntegerTypeKind 8
LLVMFunctionTypeKind 9
LLVMStructTypeKind 10
LLVMArrayTypeKind 11
LLVMPointerTypeKind 12
LLVMVectorTypeKind 13
LLVMMetadataTypeKind 14
LLVMTokenTypeKind 16
LLVMScalableVectorTypeKind 17
LLVMBFloatTypeKind 18
LLVMX86_AMXTypeKind 19
LLVMTargetExtTypeKind 20
Defined at line 150 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMDWARFEmissionNone 0
LLVMDWARFEmissionFull 1
LLVMDWARFEmissionLineTablesOnly 2
Defined at line 153 of file llvm/include/llvm-c/DebugInfo.h
enum ClassIDEnum
Name Value
GPRClass 0
VectorClass 1
ScalarFPClass 2
Defined at line 164 of file llvm/lib/Target/X86/X86TargetTransformInfo.cpp
enum FSEntity
Name Value
FS_Dir 0
FS_File 1
FS_Name 2
Defined at line 164 of file llvm/lib/Support/Path.cpp
enum 
Name Value
LLVMMDStringMetadataKind 0
LLVMConstantAsMetadataMetadataKind 1
LLVMLocalAsMetadataMetadataKind 2
LLVMDistinctMDOperandPlaceholderMetadataKind 3
LLVMMDTupleMetadataKind 4
LLVMDILocationMetadataKind 5
LLVMDIExpressionMetadataKind 6
LLVMDIGlobalVariableExpressionMetadataKind 7
LLVMGenericDINodeMetadataKind 8
LLVMDISubrangeMetadataKind 9
LLVMDIEnumeratorMetadataKind 10
LLVMDIBasicTypeMetadataKind 11
LLVMDIDerivedTypeMetadataKind 12
LLVMDICompositeTypeMetadataKind 13
LLVMDISubroutineTypeMetadataKind 14
LLVMDIFileMetadataKind 15
LLVMDICompileUnitMetadataKind 16
LLVMDISubprogramMetadataKind 17
LLVMDILexicalBlockMetadataKind 18
LLVMDILexicalBlockFileMetadataKind 19
LLVMDINamespaceMetadataKind 20
LLVMDIModuleMetadataKind 21
LLVMDITemplateTypeParameterMetadataKind 22
LLVMDITemplateValueParameterMetadataKind 23
LLVMDIGlobalVariableMetadataKind 24
LLVMDILocalVariableMetadataKind 25
LLVMDILabelMetadataKind 26
LLVMDIObjCPropertyMetadataKind 27
LLVMDIImportedEntityMetadataKind 28
LLVMDIMacroMetadataKind 29
LLVMDIMacroFileMetadataKind 30
LLVMDICommonBlockMetadataKind 31
LLVMDIStringTypeMetadataKind 32
LLVMDIGenericSubrangeMetadataKind 33
LLVMDIArgListMetadataKind 34
LLVMDIAssignIDMetadataKind 35
LLVMDISubrangeTypeMetadataKind 36
LLVMDIFixedPointTypeMetadataKind 37
Defined at line 164 of file llvm/include/llvm-c/DebugInfo.h
enum 
Name Value
LLVMExternalLinkage 0
LLVMAvailableExternallyLinkage 1
LLVMLinkOnceAnyLinkage 2
LLVMLinkOnceODRLinkage 3
LLVMLinkOnceODRAutoHideLinkage 4
LLVMWeakAnyLinkage 5
LLVMWeakODRLinkage 6
LLVMAppendingLinkage 7
LLVMInternalLinkage 8
LLVMPrivateLinkage 9
LLVMDLLImportLinkage 10
LLVMDLLExportLinkage 11
LLVMExternalWeakLinkage 12
LLVMGhostLinkage 13
LLVMCommonLinkage 14
LLVMLinkerPrivateLinkage 15
LLVMLinkerPrivateWeakLinkage 16
Defined at line 174 of file llvm/include/llvm-c/Core.h
enum BlockExecWeight
Name Value
ZERO 0x0
LOWEST_NON_ZERO 0x1
UNREACHABLE ZERO
NORETURN LOWEST_NON_ZERO
UNWIND LOWEST_NON_ZERO
COLD 0xffff
DEFAULT 0xfffff
Defined at line 194 of file llvm/lib/Analysis/BranchProbabilityInfo.cpp
enum IIT_Info
Name Value
IIT_Done 0
IIT_I1 1
IIT_I8 2
IIT_I16 3
IIT_I32 4
IIT_I64 5
IIT_F16 6
IIT_F32 7
IIT_F64 8
IIT_V2 9
IIT_V4 10
IIT_V8 11
IIT_V16 12
IIT_V32 13
IIT_PTR 14
IIT_ARG 15
IIT_V64 16
IIT_MMX 17
IIT_TOKEN 18
IIT_METADATA 19
IIT_EMPTYSTRUCT 20
IIT_STRUCT2 21
IIT_STRUCT3 22
IIT_STRUCT4 23
IIT_STRUCT5 24
IIT_EXTEND_ARG 25
IIT_TRUNC_ARG 26
IIT_ANYPTR 27
IIT_V1 28
IIT_VARARG 29
IIT_ONE_NTH_ELTS_VEC_ARG 30
IIT_SAME_VEC_WIDTH_ARG 31
IIT_VEC_OF_ANYPTRS_TO_ELT 34
IIT_I128 35
IIT_V512 36
IIT_V1024 37
IIT_STRUCT6 38
IIT_STRUCT7 39
IIT_STRUCT8 40
IIT_F128 41
IIT_VEC_ELEMENT 42
IIT_SCALABLE_VEC 43
IIT_SUBDIVIDE2_ARG 44
IIT_SUBDIVIDE4_ARG 45
IIT_VEC_OF_BITCASTS_TO_INT 46
IIT_V128 47
IIT_BF16 48
IIT_STRUCT9 49
IIT_V256 50
IIT_AMX 51
IIT_PPCF128 52
IIT_V3 53
IIT_EXTERNREF 54
IIT_FUNCREF 55
IIT_I2 57
IIT_I4 58
IIT_AARCH64_SVCOUNT 59
IIT_V6 60
IIT_V10 61
IIT_V2048 62
IIT_V4096 63
Defined at line 196 of file llvm/lib/IR/Intrinsics.cpp
enum LineType
Name Value
CallSiteProfile 0
BodyProfile 1
Metadata 2
VirtualCallTypeProfile 3
Defined at line 196 of file llvm/lib/ProfileData/SampleProfReader.cpp
enum 
Name Value
LLVMDefaultVisibility 0
LLVMHiddenVisibility 1
LLVMProtectedVisibility 2
Defined at line 197 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMOrcLookupKindStatic 0
LLVMOrcLookupKindDLSym 1
Defined at line 200 of file llvm/include/llvm-c/Orc.h
enum 
Name Value
LLVMNoUnnamedAddr 0
LLVMLocalUnnamedAddr 1
LLVMGlobalUnnamedAddr 2
Defined at line 203 of file llvm/include/llvm-c/Core.h
enum ArchiveOperation
Name Value
Print 0
Delete 1
Move 2
QuickAppend 3
ReplaceOrInsert 4
DisplayTable 5
Extract 6
CreateSymTab 7
Defined at line 206 of file llvm/tools/llvm-ar/llvm-ar.cpp
enum 
Name Value
CSK_MD5 0
CSK_SHA1 1
CSK_SHA256 2
Defined at line 209 of file llvm/include/llvm-c/DebugInfo.h
enum 
Name Value
LLVMDefaultStorageClass 0
LLVMDLLImportStorageClass 1
LLVMDLLExportStorageClass 2
Defined at line 209 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMOrcJITDylibLookupFlagsMatchExportedSymbolsOnly 0
LLVMOrcJITDylibLookupFlagsMatchAllSymbols 1
Defined at line 211 of file llvm/include/llvm-c/Orc.h
enum 
Name Value
LLVMCCallConv 0
LLVMFastCallConv 8
LLVMColdCallConv 9
LLVMGHCCallConv 10
LLVMHiPECallConv 11
LLVMAnyRegCallConv 13
LLVMPreserveMostCallConv 14
LLVMPreserveAllCallConv 15
LLVMSwiftCallConv 16
LLVMCXXFASTTLSCallConv 17
LLVMX86StdcallCallConv 64
LLVMX86FastcallCallConv 65
LLVMARMAPCSCallConv 66
LLVMARMAAPCSCallConv 67
LLVMARMAAPCSVFPCallConv 68
LLVMMSP430INTRCallConv 69
LLVMX86ThisCallCallConv 70
LLVMPTXKernelCallConv 71
LLVMPTXDeviceCallConv 72
LLVMSPIRFUNCCallConv 75
LLVMSPIRKERNELCallConv 76
LLVMIntelOCLBICallConv 77
LLVMX8664SysVCallConv 78
LLVMWin64CallConv 79
LLVMX86VectorCallCallConv 80
LLVMHHVMCallConv 81
LLVMHHVMCCallConv 82
LLVMX86INTRCallConv 83
LLVMAVRINTRCallConv 84
LLVMAVRSIGNALCallConv 85
LLVMAVRBUILTINCallConv 86
LLVMAMDGPUVSCallConv 87
LLVMAMDGPUGSCallConv 88
LLVMAMDGPUPSCallConv 89
LLVMAMDGPUCSCallConv 90
LLVMAMDGPUKERNELCallConv 91
LLVMX86RegCallCallConv 92
LLVMAMDGPUHSCallConv 93
LLVMMSP430BUILTINCallConv 94
LLVMAMDGPULSCallConv 95
LLVMAMDGPUESCallConv 96
Defined at line 215 of file llvm/include/llvm-c/Core.h
enum BitModeTy
Name Value
Bit32 0
Bit64 1
Bit32_64 2
Any 3
Unknown 4
Defined at line 217 of file llvm/tools/llvm-ar/llvm-ar.cpp
enum 
Name Value
LLVMDWARFMacinfoRecordTypeDefine 0x01
LLVMDWARFMacinfoRecordTypeMacro 0x02
LLVMDWARFMacinfoRecordTypeStartFile 0x03
LLVMDWARFMacinfoRecordTypeEndFile 0x04
LLVMDWARFMacinfoRecordTypeVendorExt 0xff
Defined at line 221 of file llvm/include/llvm-c/DebugInfo.h
enum InstructionTablesType
Name Value
NONE 0
NORMAL 1
FULL 2
Defined at line 228 of file llvm/tools/llvm-mca/llvm-mca.cpp
enum WPDCheckMode
Name Value
None 0
Trap 1
Fallback 2
Defined at line 230 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
enum RecordStackHistoryMode
Name Value
none 0
instr 1
libcall 2
Defined at line 230 of file llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
enum Action
Name Value
AddSection 0
UpdateSection 1
Defined at line 235 of file llvm/unittests/ObjCopy/ObjCopyTest.cpp
enum LLJITPlatform
Name Value
Inactive 0
Auto 1
ExecutorNative 2
GenericIR 3
Defined at line 236 of file llvm/tools/lli/lli.cpp
enum 
Name Value
LLVMOrcSymbolLookupFlagsRequiredSymbol 0
LLVMOrcSymbolLookupFlagsWeaklyReferencedSymbol 1
Defined at line 236 of file llvm/include/llvm-c/Orc.h
enum EFLAGSClobber
Name Value
NoClobber 0
EvitableClobber 1
InevitableClobber 2
Defined at line 239 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp
enum DumpKind
Name Value
NoDump 0
DumpFuncsToStdOut 1
DumpModsToStdOut 2
DumpModsToDisk 3
DumpDebugDescriptor 4
DumpDebugObjects 5
Defined at line 253 of file llvm/tools/lli/lli.cpp
enum 
Name Value
LLVMArgumentValueKind 0
LLVMBasicBlockValueKind 1
LLVMMemoryUseValueKind 2
LLVMMemoryDefValueKind 3
LLVMMemoryPhiValueKind 4
LLVMFunctionValueKind 5
LLVMGlobalAliasValueKind 6
LLVMGlobalIFuncValueKind 7
LLVMGlobalVariableValueKind 8
LLVMBlockAddressValueKind 9
LLVMConstantExprValueKind 10
LLVMConstantArrayValueKind 11
LLVMConstantStructValueKind 12
LLVMConstantVectorValueKind 13
LLVMUndefValueValueKind 14
LLVMConstantAggregateZeroValueKind 15
LLVMConstantDataArrayValueKind 16
LLVMConstantDataVectorValueKind 17
LLVMConstantIntValueKind 18
LLVMConstantFPValueKind 19
LLVMConstantPointerNullValueKind 20
LLVMConstantTokenNoneValueKind 21
LLVMMetadataAsValueValueKind 22
LLVMInlineAsmValueKind 23
LLVMInstructionValueKind 24
LLVMPoisonValueValueKind 25
LLVMConstantTargetNoneValueKind 26
LLVMConstantPtrAuthValueKind 27
Defined at line 259 of file llvm/include/llvm-c/Core.h
enum PGOKind
Name Value
NoPGO 0
SampleUse 1
Defined at line 261 of file llvm/tools/llc/llc.cpp
enum ColorOutput
Name Value
Auto 0
Enable 1
Disable 2
Invalid 3
Defined at line 294 of file llvm/tools/llvm-objdump/llvm-objdump.cpp
enum 
Name Value
LLVMIntEQ 32
LLVMIntNE 33
LLVMIntUGT 34
LLVMIntUGE 35
LLVMIntULT 36
LLVMIntULE 37
LLVMIntSGT 38
LLVMIntSGE 39
LLVMIntSLT 40
LLVMIntSLE 41
Defined at line 294 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMRealPredicateFalse 0
LLVMRealOEQ 1
LLVMRealOGT 2
LLVMRealOGE 3
LLVMRealOLT 4
LLVMRealOLE 5
LLVMRealONE 6
LLVMRealORD 7
LLVMRealUNO 8
LLVMRealUEQ 9
LLVMRealUGT 10
LLVMRealUGE 11
LLVMRealULT 12
LLVMRealULE 13
LLVMRealUNE 14
LLVMRealPredicateTrue 15
Defined at line 307 of file llvm/include/llvm-c/Core.h
enum BaseType
Name Value
NonConstant 1
ExclusivelyNull 2
ExclusivelySomeConstant 3
Defined at line 313 of file llvm/lib/IR/SafepointIRVerifier.cpp
enum MemMgr
Name Value
Default 0
Generic 1
SimpleRemote 2
Shared 3
Defined at line 314 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
enum 
Name Value
LLVMNotThreadLocal 0
LLVMGeneralDynamicTLSModel 1
LLVMLocalDynamicTLSModel 2
LLVMInitialExecTLSModel 3
LLVMLocalExecTLSModel 4
Defined at line 326 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMAtomicOrderingNotAtomic 0
LLVMAtomicOrderingUnordered 1
LLVMAtomicOrderingMonotonic 2
LLVMAtomicOrderingAcquire 4
LLVMAtomicOrderingRelease 5
LLVMAtomicOrderingAcquireRelease 6
LLVMAtomicOrderingSequentiallyConsistent 7
Defined at line 334 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LTO_DS_ERROR 0
LTO_DS_WARNING 1
LTO_DS_REMARK 3
LTO_DS_NOTE 2
Defined at line 345 of file llvm/include/llvm-c/lto.h
enum 
Name Value
LLVMAtomicRMWBinOpXchg 0
LLVMAtomicRMWBinOpAdd 1
LLVMAtomicRMWBinOpSub 2
LLVMAtomicRMWBinOpAnd 3
LLVMAtomicRMWBinOpNand 4
LLVMAtomicRMWBinOpOr 5
LLVMAtomicRMWBinOpXor 6
LLVMAtomicRMWBinOpMax 7
LLVMAtomicRMWBinOpMin 8
LLVMAtomicRMWBinOpUMax 9
LLVMAtomicRMWBinOpUMin 10
LLVMAtomicRMWBinOpFAdd 11
LLVMAtomicRMWBinOpFSub 12
LLVMAtomicRMWBinOpFMax 13
LLVMAtomicRMWBinOpFMin 14
LLVMAtomicRMWBinOpUIncWrap 15
LLVMAtomicRMWBinOpUDecWrap 16
LLVMAtomicRMWBinOpUSubCond 17
LLVMAtomicRMWBinOpUSubSat 18
LLVMAtomicRMWBinOpFMaximum 19
LLVMAtomicRMWBinOpFMinimum 20
Defined at line 361 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMDSError 0
LLVMDSWarning 1
LLVMDSRemark 2
LLVMDSNote 3
Defined at line 406 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMInlineAsmDialectATT 0
LLVMInlineAsmDialectIntel 1
Defined at line 413 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMModuleFlagBehaviorError 0
LLVMModuleFlagBehaviorWarning 1
LLVMModuleFlagBehaviorRequire 2
LLVMModuleFlagBehaviorOverride 3
LLVMModuleFlagBehaviorAppend 4
LLVMModuleFlagBehaviorAppendUnique 5
Defined at line 418 of file llvm/include/llvm-c/Core.h
enum PrefixType
Name Value
GlobalPrefix 0
ComdatPrefix 1
LabelPrefix 2
LocalPrefix 3
NoPrefix 4
Defined at line 454 of file llvm/lib/IR/AsmWriter.cpp
enum RelocKindGroup
Name Value
RKG_FIELD 0
RKG_TYPE 1
RKG_ENUMVAL 2
RKG_UNKNOWN 3
Defined at line 464 of file llvm/lib/DebugInfo/BTF/BTFParser.cpp
enum GlobalOffsetTableExprKind
Name Value
GOT_None 0
GOT_Normal 1
GOT_SymDiff 2
Defined at line 466 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
enum 
Name Value
LLVMAttributeReturnIndex 0U
LLVMAttributeFunctionIndex -1
Defined at line 473 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMTailCallKindNone 0
LLVMTailCallKindTail 1
LLVMTailCallKindMustTail 2
LLVMTailCallKindNoTail 3
Defined at line 490 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMFastMathAllowReassoc (1 << 0)
LLVMFastMathNoNaNs (1 << 1)
LLVMFastMathNoInfs (1 << 2)
LLVMFastMathNoSignedZeros (1 << 3)
LLVMFastMathAllowReciprocal (1 << 4)
LLVMFastMathAllowContract (1 << 5)
LLVMFastMathApproxFunc (1 << 6)
LLVMFastMathNone 0
LLVMFastMathAll LLVMFastMathAllowReassoc | LLVMFastMathNoNaNs | LLVMFastMathNoInfs | LLVMFastMathNoSignedZeros | LLVMFastMathAllowReciprocal | LLVMFastMathAllowContract | LLVMFastMathApproxFunc
Defined at line 497 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMGEPFlagInBounds (1 << 0)
LLVMGEPFlagNUSW (1 << 1)
LLVMGEPFlagNUW (1 << 2)
Defined at line 520 of file llvm/include/llvm-c/Core.h
enum 
Name Value
LLVMDbgRecordLabel 0
LLVMDbgRecordDeclare 1
LLVMDbgRecordValue 2
LLVMDbgRecordAssign 3
Defined at line 534 of file llvm/include/llvm-c/Core.h
enum 
Name Value
OP_COPY 0
OP_VREV 1
OP_VDUP0 2
OP_VDUP1 3
OP_VDUP2 4
OP_VDUP3 5
OP_VEXT1 6
OP_VEXT2 7
OP_VEXT3 8
OP_VUZPL 9
OP_VUZPR 10
OP_VZIPL 11
OP_VZIPR 12
OP_VTRNL 13
OP_VTRNR 14
Defined at line 569 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp
enum Enum
Name Value
One 0
Two 1
Defined at line 651 of file llvm/unittests/Support/YAMLIOTest.cpp
enum BitsetEnum
Name Value
ZeroOne 0x01
OneZero 0x10
LLVM_BITMASK_LARGEST_ENUMERATOR OneZero
Defined at line 652 of file llvm/unittests/Support/YAMLIOTest.cpp
enum Domain
Name Value
NonNegative 0
NonPositive 1
Unknown 2
Defined at line 756 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
enum AttributeProperty
Name Value
FnAttr (1 << 0)
ParamAttr (1 << 1)
RetAttr (1 << 2)
IntersectPreserve (0 << 3)
IntersectAnd (1 << 3)
IntersectMin (2 << 3)
IntersectCustom (3 << 3)
IntersectPropertyMask (3 << 3)
Defined at line 766 of file llvm/lib/IR/Attributes.cpp
enum InsertAction
Name Value
IA_AddOldMember 0
IA_AddNewMember 1
IA_Delete 2
IA_MoveOldMember 3
IA_MoveNewMember 4
Defined at line 837 of file llvm/tools/llvm-ar/llvm-ar.cpp
enum Colors
Name Value
cRed 0
cBlue 1
cGreen 2
cYellow 3
Defined at line 877 of file llvm/unittests/Support/YAMLIOTest.cpp
enum ContinuationType
Name Value
ContinueWithShadow 0
ResumeFromValue 1
Defined at line 888 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
enum MyFlags
Name Value
flagNone 0
flagBig 1 << 0
flagFlat 1 << 1
flagRound 1 << 2
flagPointy 1 << 3
Defined at line 947 of file llvm/unittests/Support/YAMLIOTest.cpp
enum AvailabilityState
Name Value
Unavailable 0
Available 1
SpeculativelyAvailable 2
Defined at line 947 of file llvm/lib/Transforms/Scalar/GVN.cpp
enum 
Name Value
DEFAULT_ADDRSPACE 0
Defined at line 968 of file llvm/lib/MC/MCParser/MasmParser.cpp
enum PrintStyle
Name Value
Hex 0
Number 1
Defined at line 1045 of file llvm/tools/llvm-readobj/XCOFFDumper.cpp
enum StringEncoding
Name Value
SE_Char6 0
SE_Fixed7 1
SE_Fixed8 2
Defined at line 1465 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
enum SkipFlags
Name Value
SkipReadMem 1
SkipSideEffect 2
SkipImplicitControlFlow 4
Defined at line 1521 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp
enum AFlags
Name Value
a1 0
a2 1
a3 2
Defined at line 1661 of file llvm/unittests/Support/YAMLIOTest.cpp
enum BFlags
Name Value
b1 0
b2 1
b3 2
Defined at line 1667 of file llvm/unittests/Support/YAMLIOTest.cpp
enum Kind
Name Value
kindA 0
kindB 1
Defined at line 1673 of file llvm/unittests/Support/YAMLIOTest.cpp
enum MetadataAbbrev
Name Value
MDTupleAbbrevID 0
DILocationAbbrevID 1
DIExpressionAbbrevID 2
DIGlobalVariableExpressionAbbrevID 3
GenericDINodeAbbrevID 4
DISubrangeAbbrevID 5
DIEnumeratorAbbrevID 6
DIBasicTypeAbbrevID 7
DIDerivedTypeAbbrevID 8
DICompositeTypeAbbrevID 9
DISubroutineTypeAbbrevID 10
DIFileAbbrevID 11
DICompileUnitAbbrevID 12
DISubprogramAbbrevID 13
DILexicalBlockAbbrevID 14
DILexicalBlockFileAbbrevID 15
DINamespaceAbbrevID 16
DIModuleAbbrevID 17
DITemplateTypeParameterAbbrevID 18
DITemplateValueParameterAbbrevID 19
DIGlobalVariableAbbrevID 20
DILocalVariableAbbrevID 21
DILabelAbbrevID 22
DIObjCPropertyAbbrevID 23
DIImportedEntityAbbrevID 24
DIAssignIDAbbrevID 25
DIMacroAbbrevID 26
DIMacroFileAbbrevID 27
DICommonBlockAbbrevID 28
DIStringTypeAbbrevID 29
DIGenericSubrangeAbbrevID 30
DISubrangeTypeAbbrevID 31
DIFixedPointTypeAbbrevID 32
LastPlusOne 33
Defined at line 2519 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
enum MonotonicType
Name Value
GreaterEq 0
LowerEq 1
Defined at line 3081 of file llvm/lib/Analysis/InstructionSimplify.cpp
enum OffsetKind
Name Value
Invalid 0
Value 1
Select 2
Defined at line 5913 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
enum MinMaxOptResult
Name Value
CannotOptimize 0
UseNewConstVal 1
UseOtherVal 2
UseEither 3
Defined at line 6598 of file llvm/lib/Analysis/InstructionSimplify.cpp
enum UndefPoisonKind
Name Value
PoisonOnly (1 << 0)
UndefOnly (1 << 1)
UndefOrPoison PoisonOnly | UndefOnly
Defined at line 7648 of file llvm/lib/Analysis/ValueTracking.cpp
enum MachineOutlinerClass
Name Value
MachineOutlinerDefault 0
MachineOutlinerTailCall 1
Defined at line 10660 of file llvm/lib/Target/X86/X86InstrInfo.cpp
enum BitTestKind
Name Value
UndefBit 0
ConstantBit 1
NotConstantBit 2
ShiftBit 3
NotShiftBit 4
Defined at line 31980 of file llvm/lib/Target/X86/X86ISelLowering.cpp
enum ShrinkMode
Name Value
MULS8 0
MULU8 1
MULS16 2
MULU16 3
Defined at line 49614 of file llvm/lib/Target/X86/X86ISelLowering.cpp

Inner Classes

Functions

  • uint32_t rotr32 (uint32_t w, uint32_t c)

    Defined at line 4 of file llvm/lib/Support/BLAKE3/blake3_portable.c

  • void BM_YAMLDummyIsNumeric (benchmark::State & state)

    Defined at line 4 of file llvm/benchmarks/DummyYAML.cpp

  • uint32_t xorshift (uint32_t State)

    Defined at line 6 of file llvm/benchmarks/xxhash.cpp

  • void g (uint32_t * state, size_t a, size_t b, size_t c, size_t d, uint32_t x, uint32_t y)

    Defined at line 8 of file llvm/lib/Support/BLAKE3/blake3_portable.c

  • void BM_GetIntrinsicForClangBuiltin (benchmark::State & state)

    Benchmark intrinsic lookup from a variety of targets.

    Defined at line 8 of file llvm/benchmarks/GetIntrinsicForClangBuiltin.cpp

  • char decodeBase64Byte (uint8_t Ch)

    Defined at line 12 of file llvm/lib/Support/Base64.cpp

  • void findAffectedValues (Value * Cond, SmallVectorImpl<Value *> & Affected)

    Defined at line 13 of file llvm/lib/Analysis/DomConditionCache.cpp

  • void BM_xxh3_64bits (benchmark::State & State)

    Defined at line 13 of file llvm/benchmarks/xxhash.cpp

  • bool shouldReduceSection (GlobalObject & GO)

    Defined at line 14 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalObjects.cpp

  • bool isValidYaml (const uint8_t * Data, size_t Size)

    Defined at line 14 of file llvm/tools/llvm-yaml-parser-fuzzer/yaml-parser-fuzzer.cpp

  • bool isAtLineEnd (const char * P)

    Defined at line 14 of file llvm/lib/Support/LineIterator.cpp

  • optional translateLocChar (char C)

    Defined at line 14 of file llvm/lib/Support/FormatVariadic.cpp

  • bool isNumericRegex (StringRef S)

    Defined at line 14 of file llvm/tools/llvm-yaml-numeric-parser-fuzzer/yaml-numeric-parser-fuzzer.cpp

  • int initialTarget ()

    Defined at line 15 of file llvm/unittests/ExecutionEngine/Orc/JITLinkRedirectionManagerTest.cpp

  • const char * symbolLookupCallback (void * DisInfo, uint64_t ReferenceValue, uint64_t * ReferenceType, uint64_t ReferencePC, const char ** ReferenceName)

    Defined at line 15 of file llvm/unittests/MC/Disassembler.cpp

  • CPUSubTypeX86 getX86SubType (const Triple & T)

    Defined at line 15 of file llvm/lib/BinaryFormat/MachO.cpp

  • basic_string ShadowBytesToString (ArrayRef ShadowBytes)

    Defined at line 15 of file llvm/unittests/Transforms/Utils/ASanStackFrameLayoutTest.cpp

  • pair findSrcDirMap (StringRef Argv0)

    Defined at line 15 of file llvm/lib/Testing/Support/SupportHelpers.cpp

  • int middleTarget ()

    Defined at line 16 of file llvm/unittests/ExecutionEngine/Orc/JITLinkRedirectionManagerTest.cpp

  • int dummyTarget ()

    Defined at line 16 of file llvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp

  • unsigned long long mask (State S)

    Defined at line 16 of file llvm/lib/XRay/BlockVerifier.cpp

  • bool shouldReduceAlign (GlobalVariable * GV)

    Defined at line 16 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalObjects.cpp

  • uint32_t writePlaceholder (raw_svector_ostream & Stream)

    Defined at line 16 of file llvm/lib/MC/DXContainerRootSignature.cpp

  • Error minidump2yaml (llvm::raw_ostream & Out, const llvm::object::MinidumpFile & Obj)

    Defined at line 16 of file llvm/tools/obj2yaml/minidump2yaml.cpp

  • const char * TestA ()

    Defined at line 15 of file llvm/unittests/Support/DynamicLibrary/ExportedFuncs.cpp

  • const char * llvm_blake3_version ()

    Defined at line 15 of file llvm/lib/Support/BLAKE3/blake3.c

  • void BM_GetIntrinsicInfoTableEntries (benchmark::State & state)

    Defined at line 16 of file llvm/benchmarks/GetIntrinsicInfoTableEntriesBM.cpp

  • StringRef getManglingComponent (const Triple & T)

    Defined at line 16 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • void printFaultType (FaultKind FT, raw_ostream & OS)

    Defined at line 16 of file llvm/lib/Object/FaultMapParser.cpp

  • basic_string createReproducerDir (std::error_code & EC)

    Defined at line 16 of file llvm/tools/dsymutil/Reproducer.cpp

  • void removeVolatileInFunction (Oracle & O, Function & F)

    Defined at line 16 of file llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp

  • ThreadSafeModule extractSubModule (ThreadSafeModule & TSM, StringRef Suffix, function ShouldExtract)

    Defined at line 16 of file llvm/lib/ExecutionEngine/Orc/IRPartitionLayer.cpp

  • int finalTarget ()

    Defined at line 17 of file llvm/unittests/ExecutionEngine/Orc/JITLinkRedirectionManagerTest.cpp

  • template <typename RecordT>
    RecordT createRecord (const CVSymbol & sym)

    Defined at line 17 of file llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp

  • MethodKind getMethodKind (uint16_t Attrs)

    Defined at line 17 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • int handleError (LLVMErrorRef Err)

    Defined at line 17 of file llvm/examples/OrcV2Examples/OrcV2CBindingsRemovableCode/OrcV2CBindingsRemovableCode.c

  • void reportNodeError (const SelectionDAG & DAG, const SDNode * N, const Twine & Msg)

    Defined at line 17 of file llvm/lib/CodeGen/SelectionDAG/SDNodeInfo.cpp

  • size_t getNameColumnWidth (const SectionSizes & Sizes, StringRef SectionNameTitle)

    Defined at line 17 of file llvm/tools/llvm-dwarfdump/SectionSizes.cpp

  • void checkSerialization (const PropertySetRegistry & PSR)

    Defined at line 17 of file llvm/unittests/Frontend/PropertySetRegistryTest.cpp

  • void chunk_state_init (llvm_blake3_chunk_state * self, const uint32_t[8] key, uint8_t flags)

    Defined at line 17 of file llvm/lib/Support/BLAKE3/blake3.c

  • Error ExtractDebugNames (StringRef NamesSecData, StringRef StrSecData)

    Defined at line 17 of file llvm/unittests/DebugInfo/DWARF/DWARFAcceleratorTableTest.cpp

  • basic_string toHex (ArrayRef Input)

    Defined at line 17 of file llvm/unittests/Support/raw_sha1_ostream_test.cpp

  • int llvm_targets_list ()

    Defined at line 17 of file llvm/tools/llvm-c-test/targets.c

  • template <size_t N>
    void parseGood (const char (&)[N] Buf)

    Defined at line 17 of file llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp

  • const DenseMap<Directive, StringRef> & Expected52 ()

    Defined at line 17 of file llvm/unittests/Frontend/OpenMPDirectiveNameTest.cpp

  • template <size_t N>
    void parseGood (const char (&)[N] Buf)

    Defined at line 17 of file llvm/unittests/Remarks/BitstreamRemarksParsingTest.cpp

  • bool isStdout (StringRef Filename)

    Defined at line 18 of file llvm/lib/Support/ToolOutputFile.cpp

  • template <>
    HasSpecificValueMatcherP<Value_type> HasSpecificValue (Value_type gmock_p0)

    Defined at line 18 of file llvm/unittests/Frontend/HLSLBindingTest.cpp

  • bool Contains (VersionRange V, int P)

    Defined at line 18 of file llvm/lib/Frontend/Directive/Spelling.cpp

  • CASTestingEnv createInMemory (int I)

    Defined at line 18 of file llvm/unittests/CAS/CASTestConfig.cpp

  • basic_string toString (OutputBuffer & OB)

    Defined at line 18 of file llvm/unittests/Demangle/OutputBufferTest.cpp

  • Expected create (ArrayRef Data)

    Defined at line 18 of file llvm/unittests/Object/MinidumpTest.cpp

  • bool operator== (const RISCVISAUtils::ExtensionVersion & A, const RISCVISAUtils::ExtensionVersion & B)

    Defined at line 18 of file llvm/unittests/TargetParser/RISCVISAInfoTest.cpp

  • basic_string mangleStr (StringRef IRName, Mangler & Mang, const DataLayout & DL)

    Defined at line 18 of file llvm/unittests/IR/ManglerTest.cpp

  • StringRef bufferize (StringRef Str)

    Defined at line 18 of file llvm/unittests/TableGen/CodeExpanderTest.cpp

  • template <typename RecordT>
    ClassOptions getUdtOptions (CVRecord CVT)

    Defined at line 18 of file llvm/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp

  • TypeIndex createPointerRecord (AppendingTypeTableBuilder & Builder, TypeIndex TI)

    Defined at line 18 of file llvm/unittests/DebugInfo/CodeView/TypeHashingTest.cpp

  • void initLLVMIfNeeded ()

    Defined at line 18 of file llvm/unittests/DebugInfo/DWARF/DwarfUtils.cpp

  • Expected toBinary (SmallVectorImpl<char> & Storage, StringRef Yaml)

    Defined at line 18 of file llvm/unittests/ObjectYAML/MinidumpYAMLTest.cpp

  • bool shouldRunOnFunction (Function & F, ProfileSummaryInfo & PSI, FunctionAnalysisManager & FAM)

    Defined at line 18 of file llvm/lib/Transforms/Instrumentation/PGOForceFunctionAttrs.cpp

  • Expected getDataSlice (ArrayRef Data, uint64_t Offset, uint64_t Size)

    Defined at line 18 of file llvm/lib/Object/SFrameParser.cpp

  • Error handleSubOptions ()

    Defined at line 18 of file llvm/tools/llvm-remarkutil/RemarkUtil.cpp

  • SmallVector getMemberOffsets (const DataLayout & DL, GlobalVariable * Handle, function_ref IsPadding)

    Defined at line 18 of file llvm/lib/Frontend/HLSL/CBuffer.cpp

  • void serializeAndCheck (remarks::RemarkLinker & RL, Format OutputFormat, StringRef ExpectedOutput)

    Defined at line 18 of file llvm/unittests/Remarks/RemarksLinkingTest.cpp

  • uint32_t hashFullyQualifiedName (CompileUnit & InputCU, DWARFDie & InputDIE, int ChildRecurseDepth)

    Defined at line 18 of file llvm/lib/DWARFLinker/Parallel/AcceleratorRecordsSaver.cpp

  • void print_usage ()

    Defined at line 18 of file llvm/tools/llvm-c-test/main.c

  • StringRef getCASIDPrefix ()

    Defined at line 19 of file llvm/lib/CAS/BuiltinCAS.cpp

  • Error parseFailed (const Twine & Msg)

    Defined at line 19 of file llvm/lib/Object/DXContainer.cpp

  • bool shouldReduceDSOLocal (GlobalValue & GV)

    Defined at line 19 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalValues.cpp

  • template <typename EndianType>
    void mapOptional (yaml::IO & IO, const char * Key, EndianType & Val, typename EndianType::value_type Default)

    Perform an optional yaml-mapping of an endian-aware type EndianType. The

    only purpose of this function is to avoid casting the Default value to the

    endian type;

    Defined at line 19 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • uintptr_t func (int & A)

    Defined at line 19 of file llvm/unittests/Support/ProgramStackTest.cpp

  • void require (bool Assertion, const char * Msg, StringRef Code)

    Crash if the assertion fails, printing the message and testcase.

    More elegant error handling isn't needed for unit tests.

    Defined at line 19 of file llvm/lib/Testing/Annotations/Annotations.cpp

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 19 of file llvm/unittests/IR/AbstractCallSiteTest.cpp

  • Signature dumpSignature (const DirectX::Signature & Sig)

    Defined at line 19 of file llvm/tools/obj2yaml/dxcontainer2yaml.cpp

  • void reduceInvokesInFunction (Oracle & O, Function & F)

    Defined at line 19 of file llvm/tools/llvm-reduce/deltas/ReduceInvokes.cpp

  • void addPadding (BinaryStreamWriter & Writer)

    Defined at line 19 of file llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp

  • template <class T>
    Error parseDWARFYAML (StringRef Yaml, T & Data)

    Defined at line 19 of file llvm/unittests/ObjectYAML/DWARFYAMLTest.cpp

  • bool handleValVerMetadata (Module & M)

    Defined at line 19 of file llvm/lib/Transforms/Utils/DXILUpgrade.cpp

  • bool inferAllPrototypeAttributes (Module & M, function_ref<TargetLibraryInfo &(Function &)> GetTLI)

    Defined at line 19 of file llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp

  • BranchCoverageInfo sumBranches (const ArrayRef<CountedRegion> & Branches)

    Defined at line 19 of file llvm/tools/llvm-cov/CoverageSummaryInfo.cpp

  • template <typename ORCABI>
    bool stubAndPointerRangesOk (ExecutorAddr StubBlockAddr, ExecutorAddr PointerBlockAddr, unsigned int NumStubs)

    Defined at line 19 of file llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp

  • bool isSafeDecreasingBound (const SCEV * Start, const SCEV * BoundSCEV, const SCEV * Step, Predicate Pred, unsigned int LatchBrExitIdx, Loop * L, ScalarEvolution & SE)

    Given a loop with an deccreasing induction variable, is it possible to

    safely calculate the bounds of a new loop using the given Predicate.

    Defined at line 19 of file llvm/lib/Transforms/Utils/LoopConstrainer.cpp

  • void emitOptionRst (const RecordKeeper & Records, raw_ostream & OS)

    This tablegen backend takes an input .td file describing a list of options

    and emits a RST man page.

    Defined at line 19 of file llvm/utils/TableGen/OptionRSTEmitter.cpp

  • bool shouldReduceAlign (Function * F)

    Defined at line 20 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalObjects.cpp

  • Error reportError (StringRef Message)

    Defined at line 20 of file llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp

  • std::size_t number (State S)

    Defined at line 20 of file llvm/lib/XRay/BlockVerifier.cpp

  • bool shouldPreserveUsePosition (const Instruction & I)

    Defined at line 20 of file llvm/tools/llvm-reduce/deltas/ReduceSinkDefsToUses.cpp

  • bool isAnonymous (StringRef Name)

    Corresponds to `fUDTAnon`.

    Defined at line 20 of file llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp

  • optional isConstantVal (ExprOperand Op)

    Returns true if the Op is a DW_OP_constu.

    Defined at line 20 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • StringRef getName (Value * V)

    Defined at line 20 of file llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp

  • void diagnosticHandler (LLVMDiagnosticInfoRef DI, void * C)

    Defined at line 20 of file llvm/tools/llvm-c-test/module.c

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 20 of file llvm/unittests/Transforms/Utils/DebugifyTest.cpp

  • unique_ptr parseIR (LLVMContext & C, StringRef IR)

    Defined at line 20 of file llvm/unittests/Transforms/Utils/ModuleUtilsTest.cpp

  • int LLVMWriteBitcodeToFile (LLVMModuleRef M, const char * Path)

    Writes a module to the specified path. Returns 0 on success.

    Defined at line 20 of file llvm/lib/Bitcode/Writer/BitWriter.cpp

  • LLVMErrorRef LLVMOrcLLJITEnableDebugSupport (LLVMOrcLLJITRef J)

    Install the plugin that submits debug objects to the executor. Executors must

    expose the llvm_orc_registerJITLoaderGDBAllocAction symbol.

    Defined at line 20 of file llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp

  • void dropRegisterHintsFromFunction (Oracle & O, MachineFunction & MF)

    Defined at line 20 of file llvm/tools/llvm-reduce/deltas/ReduceVirtualRegisters.cpp

  • uint64_t hashBlock (const MachineBasicBlock & MBB, bool HashOperands)

    Defined at line 20 of file llvm/lib/CodeGen/MachineBlockHashInfo.cpp

  • void round_fn (uint32_t[16] state, const uint32_t * msg, size_t round)

    Defined at line 20 of file llvm/lib/Support/BLAKE3/blake3_portable.c

  • vector getFormatStrings (int NumReplacements)

    Generate a list of format strings that have `NumReplacements` replacements

    by permuting the replacements and some literal text.

    Defined at line 20 of file llvm/benchmarks/FormatVariadicBM.cpp

  • void encodeBase64StringEntry (char * Buffer, uint64_t Value)

    Encode a string table entry offset in base 64, padded to 6 chars, and

    prefixed with a double slash: '//AAAAAA', '//AAAAAB', ...

    Buffer must be at least 8 bytes large. No terminating null appended.

    Defined at line 20 of file llvm/lib/BinaryFormat/COFF.cpp

  • void llvm_tokenize_stdin (void (*)(char **, int) cb)

    helpers.c

    Defined at line 20 of file llvm/tools/llvm-c-test/helpers.c

  • void extractOperandsFromModule (Oracle & O, ReducerWorkItem & WorkItem, function_ref ReduceValue)

    Defined at line 20 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • void mergeAttributes (LLVMContext & Ctx, const Module & M, const DataLayout & DL, const Triple & TT, Function * Func, FunctionType * FuncTy, AttributeList FuncAttrs)

    Defined at line 20 of file llvm/lib/Transforms/Utils/DeclareRuntimeLibcalls.cpp

  • int llvm_object_list_sections ()

    object.c

    Defined at line 20 of file llvm/tools/llvm-c-test/object.c

  • bool affectedValuesAreEphemeral (ArrayRef Affected)

    Defined at line 20 of file llvm/lib/Transforms/Scalar/DropUnnecessaryAssumes.cpp

  • void initializeMachineBranchProbabilityInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 21 of file llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp

  • bool isIdentChar (char C)

    Defined at line 21 of file llvm/utils/TableGen/Common/AsmWriterInst.cpp

  • Error error (const char * Message)

    ===----------------------------------------------------------------------===//

    BitstreamCursor implementation

    ===----------------------------------------------------------------------===//

    Defined at line 21 of file llvm/lib/Bitstream/Reader/BitstreamReader.cpp

  • bool isExpandableUser (User * U)

    Defined at line 21 of file llvm/lib/IR/ReplaceConstant.cpp

  • bool inputDenormalIsIEEE (DenormalMode Mode)

    Return true if it's possible to assume IEEE treatment of input denormals in

    for

    Defined at line 21 of file llvm/lib/Support/KnownFPClass.cpp

  • std::unordered_map<cl::SubCommand *, HandlerType> & getCommands ()

    Defined at line 21 of file llvm/tools/llvm-xray/xray-registry.cpp

  • size_t numElementsInSubstring (const SuffixTreeNode * N)

    Defined at line 21 of file llvm/lib/Support/SuffixTree.cpp

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 21 of file llvm/unittests/Transforms/Utils/ProfDataUtilTest.cpp

  • template <class ELFT>
    Expected<ELFObjectFile<ELFT>> toBinary (SmallVectorImpl<char> & Storage, StringRef Yaml)

    Defined at line 21 of file llvm/unittests/ObjectYAML/ELFYAMLTest.cpp

  • void addPadding (BinaryStreamWriter & Writer)

    Defined at line 21 of file llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp

  • size_t FindSequence (ArrayRef Buffer, ArrayRef Sequence)

    Defined at line 21 of file llvm/lib/MC/DXContainerPSVInfo.cpp

  • int llvm_add_named_metadata_operand ()

    metadata.c

    Defined at line 21 of file llvm/tools/llvm-c-test/metadata.c

  • UTF32 chopOneUTF32 (StringRef & Buffer)

    Defined at line 21 of file llvm/lib/Support/DJB.cpp

  • void checkValidLayout (ArrayRef Fields, uint64_t Size, Align MaxAlign)

    Defined at line 21 of file llvm/lib/Support/OptimizedStructLayout.cpp

  • Expected expand (StringRef S, StringRef Original)

    Expands character ranges and returns a bitmap.

    For example, "a-cf-hz" is expanded to "abcfghz".

    Defined at line 21 of file llvm/lib/Support/GlobPattern.cpp

  • void removeUsesFromFunction (Oracle & O, MachineFunction & MF)

    Defined at line 21 of file llvm/tools/llvm-reduce/deltas/ReduceRegisterUses.cpp

  • void reduceMasksInFunction (Oracle & O, MachineFunction & MF)

    Defined at line 21 of file llvm/tools/llvm-reduce/deltas/ReduceRegisterMasks.cpp

  • bool shouldReduceComdat (GlobalObject & GO)

    Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalObjects.cpp

  • void freeVoidVoid ()

    Defined at line 22 of file llvm/unittests/ExecutionEngine/Orc/CallableTraitsHelperTest.cpp

  • bool shouldAlwaysKeep (const GlobalVariable & GV)

    Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp

  •  voidWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 22 of file llvm/unittests/ExecutionEngine/Orc/CallSPSViaEPCTest.cpp

  • std::recursive_mutex * getManagedStaticMutex ()

    Defined at line 22 of file llvm/lib/Support/ManagedStatic.cpp

  • template <std::size_t X>
    MemoryBufferRef getMemoryBuffer (uint8_t[X] Data)

    Defined at line 22 of file llvm/unittests/Object/DXContainerTest.cpp

  • bool convert (SmallVectorImpl<char> & Output, const char * YAML)

    Defined at line 22 of file llvm/unittests/ObjectYAML/DXContainerYAMLTest.cpp

  • StringRef getExtensionName (const Record * R)

    Defined at line 22 of file llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  • bool shouldSkipRecord (const Record & R, const bool RecordUndefs)

    Defined at line 22 of file llvm/lib/TextAPI/RecordVisitor.cpp

  • FunctionCallee getDefaultPersonalityFn (Module * M)

    Defined at line 22 of file llvm/lib/Transforms/Utils/EscapeEnumerator.cpp

  • vector getLibcallNameStringRefs ()

    Defined at line 22 of file llvm/benchmarks/RuntimeLibcalls.cpp

  • DbiStream * getDbiStreamPtr (NativeSession & Session)

    Defined at line 22 of file llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp

  • unsigned int getMinBucketToReserveForEntries (unsigned int NumEntries)

    Returns the number of buckets to allocate to ensure that the DenseMap can

    accommodate

    without need to grow().

    Defined at line 22 of file llvm/lib/Support/StringMap.cpp

  • int ascii_strncasecmp (StringRef LHS, StringRef RHS)

    strncasecmp() is not available on non-POSIX systems, so define an

    alternative function here.

    Defined at line 22 of file llvm/lib/Support/StringRef.cpp

  • const BasicSubtargetSubTypeKV * find (StringRef S, ArrayRef A)

    Find KV in array using binary search.

    Defined at line 22 of file llvm/lib/TargetParser/TargetParser.cpp

  • void printRegister (raw_ostream & OS, DIDumpOptions DumpOpts, unsigned int RegNum)

    Defined at line 22 of file llvm/lib/DebugInfo/DWARF/DWARFUnwindTablePrinter.cpp

  • void mapRemarkHeader (yaml::IO & io, StringRef PassName, StringRef RemarkName, optional RL, StringRef FunctionName, optional Hotness, ArrayRef Args)

    Defined at line 22 of file llvm/lib/Remarks/YAMLRemarkSerializer.cpp

  • bool skipIfAtLineEnd (const char *& P)

    Defined at line 22 of file llvm/lib/Support/LineIterator.cpp

  • void checkExpectedSpaceAndFreeRanges (hlsl::BindingInfo::RegisterSpace & RegSpace, uint32_t ExpSpace, ArrayRef ExpValues)

    Defined at line 22 of file llvm/unittests/Frontend/HLSLBindingTest.cpp

  • void compareByLine (StringRef LHS, StringRef RHS)

    Defined at line 22 of file llvm/unittests/InterfaceStub/ELFYAMLTest.cpp

  • void runTest (Module & M, StringRef FuncName, function_ref<void (Function &, LoopInfo &, ScalarEvolution &)> Test)

    Build the loop nest analysis for a loop nest and run the given test

    Defined at line 22 of file llvm/unittests/Analysis/LoopNestTest.cpp

  • SmallString maskToString (uint8_t Mask, bool StripTrailing)

    Defined at line 22 of file llvm/tools/llvm-objdump/DXContainerDump.cpp

  • void dropIRReferencesFromInstructions (Oracle & O, MachineFunction & MF)

    Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceIRReferences.cpp

  • optional extractProbeFromDiscriminator (const DILocation * DIL)

    Defined at line 22 of file llvm/lib/IR/PseudoProbe.cpp

  • void diagnosticHandler (LLVMDiagnosticInfoRef DI, void * C)

    Defined at line 22 of file llvm/tools/llvm-c-test/diagnostic.c

  • void ComputeNumbering (const Function * F, DenseMap<const Value *, unsigned int> & Numbering)

    Defined at line 22 of file llvm/tools/llvm-diff/lib/DiffConsumer.cpp

  • void reduceNodes (MDNode * Root, SetVector<std::pair<unsigned int, MDNode *>> & NodesToDelete, MDNode * TemporaryNode, Oracle & O, Module & Program)

    Traverse the graph breadth-first and try to remove unnamed metadata nodes

    Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceDistinctMetadata.cpp

  • void reportCoverage (StringRef SourceFile, StringRef ObjectDir, const std::string & InputGCNO, const std::string & InputGCDA, bool DumpGCOV, const GCOV::Options & Options)

    Defined at line 22 of file llvm/tools/llvm-cov/gcov.cpp

  • void removeDefsFromFunction (Oracle & O, MachineFunction & MF)

    Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceRegisterDefs.cpp

  • bool isCOFFGOTSection (Section & S)

    Defined at line 23 of file llvm/tools/llvm-jitlink/llvm-jitlink-coff.cpp

  • bool isELFGOTSection (Section & S)

    Defined at line 23 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp

  • bool isMachOGOTSection (Section & S)

    Defined at line 23 of file llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp

  • basic_string gtest_InMemoryCASCASTest_EvalGenerateName_ (const ::testing::TestParamInfo<CASTest::ParamType> & info)

    Defined at line 23 of file llvm/unittests/CAS/CASTestConfig.cpp

  • ParamGenerator gtest_InMemoryCASCASTest_EvalGenerator_ ()

    Defined at line 23 of file llvm/unittests/CAS/CASTestConfig.cpp

  • FirstMacroFusionInstKind classifyFirst (const MachineInstr & MI)

    Defined at line 23 of file llvm/lib/Target/X86/X86MacroFusion.cpp

  • bool shouldReduceVisibility (GlobalValue & GV)

    Defined at line 23 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalValues.cpp

  • OptBisect & getOptBisector ()

    Defined at line 23 of file llvm/lib/IR/OptBisect.cpp

  • bool canReplaceFunction (const Function & F)

    Defined at line 23 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp

  • bool isIntroVirtual (uint16_t Attrs)

    Defined at line 23 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  •  addWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 23 of file llvm/unittests/ExecutionEngine/Orc/ExecutionSessionWrapperFunctionCallsTest.cpp

  • void LLVMInitializeX86TargetInfo ()

    Defined at line 23 of file llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp

  • LLVMBool LLVMParseBitcode (LLVMMemoryBufferRef MemBuf, LLVMModuleRef * OutModule, char ** OutMessage)

    Builds a module from the bitcode in the specified memory buffer, returning a

    reference to the module via the OutModule parameter. Returns 0 on success.

    Optionally returns a human-readable error message via OutMessage.

    This is deprecated. Use LLVMParseBitcode2.

    Defined at line 23 of file llvm/lib/Bitcode/Reader/BitReader.cpp

  • unique_ptr makeLLVMModule (LLVMContext & Context, StringRef ModuleStr)

    Defined at line 23 of file llvm/unittests/Analysis/DomTreeUpdaterTest.cpp

  • template <typename T>
    basic_string printToString (const T & Value)

    Defined at line 23 of file llvm/unittests/Demangle/OutputBufferTest.cpp

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 23 of file llvm/unittests/Transforms/Utils/DebugSSAUpdaterTest.cpp

  • int parseIR (LLVMContext & C, const char * IR)

    Defined at line 23 of file llvm/unittests/Transforms/Utils/LoopUtilsTest.cpp

  • template <typename T>
    Error visitKnownRecord (CVSymbol & Record, SymbolVisitorCallbacks & Callbacks)

    Defined at line 23 of file llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp

  • uint32_t rewriteOffsetToCurrentByte (raw_svector_ostream & Stream, uint32_t Offset)

    Defined at line 23 of file llvm/lib/MC/DXContainerRootSignature.cpp

  • template <class ELFT>
    Expected<ELFObjectFile<ELFT>> toBinary (SmallVectorImpl<char> & Storage, StringRef Yaml)

    Defined at line 23 of file llvm/unittests/Object/BuildIDTest.cpp

  • LLVMMetadataRef declare_objc_class (LLVMDIBuilderRef DIB, LLVMMetadataRef File)

    Defined at line 23 of file llvm/tools/llvm-c-test/debuginfo.c

  • PassPluginLibraryInfo getDefaultDynamicAdvisorPluginInfo ()

    New PM Registration

    Defined at line 23 of file llvm/unittests/Analysis/InlineAdvisorPlugin/InlineAdvisorPlugin.cpp

  • void runWithLoopInfo (Module & M, StringRef FuncName, function_ref<void (Function &, LoopInfo &)> Test)

    Build the loop info for the function and run the Test.

    Defined at line 23 of file llvm/unittests/Analysis/LoopInfoTest.cpp

  • void fillTestBuffer (uint8_t * buffer, size_t len)

    Fills a test buffer with pseudorandom data.

    This is used in the sanity check - its values must not be changed.

    Defined at line 23 of file llvm/unittests/Support/xxhashTest.cpp

  • bool hasAssumption (const Attribute & A, const KnownAssumptionString & AssumptionStr)

    Defined at line 23 of file llvm/lib/IR/Assumptions.cpp

  • void pprint (int pos, unsigned char * buf, int len, const char * disasm)

    Defined at line 23 of file llvm/tools/llvm-c-test/disassemble.c

  • void runWithLoopInfoAndSE (Module & M, StringRef FuncName, function_ref<void (Function &, LoopInfo &, ScalarEvolution &)> Test)

    Build the loop info and scalar evolution for the function and run the Test.

    Defined at line 23 of file llvm/unittests/Analysis/IVDescriptorsTest.cpp

  •  llvm_orc_rt_alt_UnwindInfoManager_register (const char * ArgData, size_t ArgSize)

    Defined at line 23 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp

  • void nameInstructions (Function & F)

    Defined at line 23 of file llvm/lib/Transforms/Utils/InstructionNamer.cpp

  • Expected countFileSizes (StringRef Path)

    Visits all the files of a directory recursively and returns the sum of their

    sizes.

    Defined at line 23 of file llvm/unittests/CAS/UnifiedOnDiskCacheTest.cpp

  • void writeValidAbbreviationDeclarations (raw_ostream & OS, uint32_t FirstCode, OrderKind Order)

    Defined at line 23 of file llvm/unittests/DebugInfo/DWARF/DWARFDebugAbbrevTest.cpp

  • bool canTryToConstantAddTwoShiftAmounts (Value * Sh0, Value * ShAmt0, Value * Sh1, Value * ShAmt1)

    Defined at line 23 of file llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  • void makeVisible (GlobalValue & GV, bool Delete)

    Make sure GV is visible from both modules. Delete is true if it is

    being deleted from this module.

    This also makes sure GV cannot be dropped so that references from

    the split module remain valid.

    Defined at line 23 of file llvm/lib/Transforms/IPO/ExtractGV.cpp

  • bool isIdempotentRMW (AtomicRMWInst & RMWI)

    Return true if and only if the given instruction does not modify the memory

    location referenced. Note that an idemptent atomicrmw may still have

    ordering effects on nearby instructions, or be volatile.

    TODO: Common w/ the version in AtomicExpandPass, and change the term used.

    Idemptotent is confusing in this context.

    Defined at line 23 of file llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp

  • bool fillLineInfoFromLocation (const SourceLocation & Location, DILineInfoSpecifier Specifier, DILineInfo & LineInfo)

    Defined at line 23 of file llvm/lib/DebugInfo/GSYM/GsymContext.cpp

  • void initializeGISelCSEAnalysisWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 24 of file llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp

  • OwningBinary<ObjectFile> * unwrap (LLVMObjectFileRef OF)

    Defined at line 24 of file llvm/lib/Object/Object.cpp

  • bool shouldPreserveDefPosition (const Instruction & I)

    Defined at line 24 of file llvm/tools/llvm-reduce/deltas/ReduceSinkDefsToUses.cpp

  • void initCodeGenPlugin ()

    Defined at line 24 of file llvm/unittests/CodeGen/CGPluginTest/Plugin/Plugin.cpp

  • void func2 (int & A)

    Defined at line 24 of file llvm/unittests/Support/ProgramStackTest.cpp

  • unsigned int getPrefixEncodingFromUnsigned (unsigned int U)

    Utility functions for encoding / decoding discriminators.

    With a given unsigned int

    use up to 13 bits to represent it.

    old_bit 1~5 --> new_bit 1~5

    old_bit 6~12 --> new_bit 7~13

    new_bit_6 is 0 if higher bits (7~13) are all 0

    Defined at line 24 of file llvm/include/llvm/Support/Discriminator.h

  • void initializeLiveStacksWrapperLegacyPassOnce (PassRegistry & Registry)

    Defined at line 24 of file llvm/lib/CodeGen/LiveStacks.cpp

  • size_t slotForIndex (TypeIndex Idx)

    Defined at line 24 of file llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp

  • bool LowerFenceInst (FenceInst * FI)

    Defined at line 24 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp

  • void initializeLazyMachineBlockFrequencyInfoPassPassOnce (PassRegistry & Registry)

    Defined at line 24 of file llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp

  • StringRef getHWDivSynonym (StringRef HWDiv)

    Defined at line 24 of file llvm/lib/TargetParser/ARMTargetParser.cpp

  • bool isNonSpilledIntrinsic (Instruction & I)

    Defined at line 24 of file llvm/lib/Transforms/Coroutines/SpillUtils.cpp

  • const omp::DirectiveNameParser & getParser ()

    Defined at line 24 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • Error malformedError (Twine Msg)

    Defined at line 24 of file llvm/lib/Object/MachOUniversal.cpp

  • int parseIR (LLVMContext & C, const char * IR)

    Defined at line 24 of file llvm/unittests/Transforms/Utils/UnrollLoopTest.cpp

  • basic_string LibPath (basic_string Name)

    Defined at line 24 of file llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp

  • template <typename T>
    Error readStruct (StringRef Buffer, const char * Src, T & Struct)

    Defined at line 24 of file llvm/lib/Object/DXContainer.cpp

  • Result editDistanceAndMaps (StringRef A, StringRef B, unsigned int MaxEditDistance)

    Defined at line 24 of file llvm/unittests/ADT/EditDistanceTest.cpp

  • bool functionHasMoreThanNonTerminatorInsts (const Function & F, uint64_t NumInsts)

    Defined at line 24 of file llvm/tools/llvm-reduce/deltas/ReduceInlineCallSites.cpp

  • bool parseAssemblyInto (MemoryBufferRef F, Module * M, ModuleSummaryIndex * Index, SMDiagnostic & Err, SlotMapping * Slots, bool UpgradeDebugInfo, function_ref DataLayoutCallback, AsmParserContext * ParserContext)

    Defined at line 24 of file llvm/lib/AsmParser/Parser.cpp

  • Register getPrevDefOfRCInMBB (MachineBasicBlock & MBB, MachineBasicBlock::reverse_iterator & RI, const RegClassOrRegBank & RC, LLT Ty, int & ExcludeMIs)

    Defined at line 24 of file llvm/tools/llvm-reduce/deltas/ReduceInstructionsMIR.cpp

  • bool lowerWidenableCondition (Function & F)

    Defined at line 24 of file llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp

  • void findCallsAtConstantOffset (SmallVectorImpl<DevirtCallSite> & DevirtCalls, bool * HasNonCallUses, Value * FPtr, uint64_t Offset, const CallInst * CI, DominatorTree & DT)

    Search for virtual calls that call FPtr and add them to DevirtCalls.

    Defined at line 24 of file llvm/lib/Analysis/TypeMetadataUtils.cpp

  • StringRef recordToString (State R)

    Defined at line 24 of file llvm/lib/XRay/BlockVerifier.cpp

  • void runUnrollAnalyzer (Module & M, StringRef FuncName, SimplifiedValuesVectorTy & SimplifiedValuesVector)

    Build loop info and scalar evolution for the function and run the analysis.

    Defined at line 24 of file llvm/unittests/Analysis/UnrollAnalyzerTest.cpp

  • bool lowerGuardIntrinsic (Function & F)

    Defined at line 24 of file llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp

  • bool stripGCRelocates (Function & F)

    Defined at line 24 of file llvm/lib/Transforms/Utils/StripGCRelocates.cpp

  • pair GenerateStub (LinkGraph & G, size_t PointerSize, Edge::Kind PointerEdgeKind)

    Defined at line 24 of file llvm/unittests/ExecutionEngine/JITLink/StubsTests.cpp

  • vector getUUID (const object::ObjectFile & Obj)

    Defined at line 24 of file llvm/lib/DebugInfo/GSYM/ObjectFileTransformer.cpp

  • LLVMOrcThreadSafeModuleRef createDemoModule ()

    Defined at line 24 of file llvm/examples/OrcV2Examples/OrcV2CBindingsRemovableCode/OrcV2CBindingsRemovableCode.c

  • void warnAboutLeftoverTransformations (Loop * L, OptimizationRemarkEmitter * ORE)

    Emit warnings for forced (i.e. user-defined) loop transformations which have

    still not been performed.

    Defined at line 24 of file llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp

  • bool isCOFFStubsSection (Section & S)

    Defined at line 25 of file llvm/tools/llvm-jitlink/llvm-jitlink-coff.cpp

  • bool isELFStubsSection (Section & S)

    Defined at line 25 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp

  • bool isWhitespaceExceptNL (unsigned char c)

    Return true if this character is non-new-line whitespace:

    ' ', '

    \

    t', '

    \

    f', '

    \

    v', '

    \

    r'.

    Defined at line 25 of file llvm/lib/Support/RewriteBuffer.cpp

  • bool isMachOStubsSection (Section & S)

    Defined at line 25 of file llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp

  • bool shouldIgnoreArgument (const Value * V)

    Assume outgoing undef arguments aren't relevant.

    TODO: Maybe skip any trivial constant arguments.

    Defined at line 25 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp

  • bool inputDenormalIsIEEEOrPosZero (DenormalMode Mode)

    Defined at line 25 of file llvm/lib/Support/KnownFPClass.cpp

  • void error (Error && EC)

    Defined at line 25 of file llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp

  • template <typename T>
    Error visitKnownRecord (CVType & Record, TypeVisitorCallbacks & Callbacks)

    Defined at line 25 of file llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp

  • uint32_t getNumRecordsInCollection (LazyRandomTypeCollection & Types)

    LazyRandomTypeCollection doesn't appear to expose the number of records, so

    just iterate up front to find out.

    Defined at line 25 of file llvm/tools/llvm-pdbutil/TypeReferenceTracker.cpp

  • int parseIR (LLVMContext & C, const char * IR)

    Defined at line 25 of file llvm/unittests/Analysis/LoadsTest.cpp

  • int parseIR (LLVMContext & C, const char * IR)

    Defined at line 25 of file llvm/unittests/Transforms/Utils/LoopRotationUtilsTest.cpp

  • void copyComdat (GlobalObject * Dst, const GlobalObject * Src)

    Defined at line 25 of file llvm/lib/Transforms/Utils/CloneModule.cpp

  • template <typename T, std::size_t N>
    int format_to_buffer (T Value, char (&)[N] Buffer)

    Defined at line 25 of file llvm/lib/Support/NativeFormatting.cpp

  • void printRegister (raw_ostream & OS, const DIDumpOptions & DumpOpts, unsigned int RegNum)

    Defined at line 25 of file llvm/lib/DebugInfo/DWARF/DWARFCFIPrinter.cpp

  •  op_to_opcode (char op)

    Defined at line 25 of file llvm/tools/llvm-c-test/calc.c

  • void runTest (Module & M, StringRef FuncName, function_ref<void (Function &, LoopInfo &, DependenceInfo &, ScalarEvolution &)> Test)

    Build the DDG analysis for a loop and run the given test

    Defined at line 25 of file llvm/unittests/Analysis/DDGTest.cpp

  • SetVector collectReferencedValues (Value * Root)

    Collect all values that are directly or indirectly referenced by

    including Root itself. This is a BF search such that the more steps needed

    to get to the reference, the more behind it is found in

    Each

    step could be its own reduction, therefore we consider later values "more

    reduced".

    Defined at line 25 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsSkip.cpp

  • bool addModuleFlags (Module & M, MapVector<std::pair<Function *, Function *>, uint64_t> & Counts)

    Defined at line 25 of file llvm/lib/Transforms/Instrumentation/CGProfile.cpp

  • void expandUser (ilist_iterator_w_bits InsertPt, Constant * C, SmallVector<Instruction *, 4> & NewInsts)

    Defined at line 25 of file llvm/lib/IR/ReplaceConstant.cpp

  • void check (Format SerializerFormat, ArrayRef Rs, StringRef ExpectedR, optional ExpectedMeta, optional StrTab)

    Defined at line 25 of file llvm/unittests/Remarks/YAMLRemarksSerializerTest.cpp

  • Error dumpDebugAbbrev (llvm::DWARFContext & DCtx, llvm::DWARFYAML::Data & Y)

    Defined at line 25 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • bool convertAnnotation2Metadata (Module & M)

    Defined at line 25 of file llvm/lib/Transforms/IPO/Annotation2Metadata.cpp

  • optional GetBlockName (unsigned int BlockID, const BitstreamBlockInfo & BlockInfo, CurStreamTypeType CurStreamType)

    Return a symbolic block name if known, otherwise return null.

    Defined at line 25 of file llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp

  • ModuleMetadataInfo collectMetadataInfo (Module & M)

    Defined at line 25 of file llvm/lib/Analysis/DXILMetadataAnalysis.cpp

  • void insertCall (Function & CurFn, StringRef Func, ilist_iterator_w_bits InsertionPt, DebugLoc DL)

    Defined at line 25 of file llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp

  • int convertForTestingMain (int argc, const char *[] argv)

    The main entry point for the 'convert-for-testing' subcommand.

    Defined at line 25 of file llvm/tools/llvm-cov/TestingSupport.cpp

  • void ContractNodes (int & InputMatcherPtr, const CodeGenDAGPatterns & CGP)

    ContractNodes - Turn multiple matcher node patterns like 'MoveChild+Record'

    into single compound nodes like RecordChild.

    Defined at line 25 of file llvm/utils/TableGen/DAGISelMatcherOpt.cpp

  • uint32_t rol (uint32_t Number, int Bits)

    Defined at line 26 of file llvm/lib/Support/SHA1.cpp

  • TargetLibraryInfoImpl * unwrap (LLVMTargetLibraryInfoRef P)

    Defined at line 26 of file llvm/lib/Target/Target.cpp

  • StringRef setOrderIndicator (InterfaceInputOrder Order)

    Defined at line 26 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • bool shouldAlwaysKeep (const Instruction & I)

    Filter out cases where deleting the instruction will likely cause the

    user/def of the instruction to fail the verifier.

    TODO: Technically the verifier only enforces preallocated token usage and

    there is a none token.

    Defined at line 26 of file llvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const yaml::BinaryRef & Ref)

    Defined at line 26 of file llvm/unittests/DebugInfo/BTF/BTFParserTest.cpp

  • void initializeLazyBlockFrequencyInfoPassPassOnce (PassRegistry & Registry)

    Defined at line 26 of file llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp

  • void initializeLazyBranchProbabilityInfoPassPassOnce (PassRegistry & Registry)

    Defined at line 26 of file llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp

  • template <typename MapType, typename EndianType>
    void mapRequiredAs (yaml::IO & IO, const char * Key, EndianType & Val)

    Yaml-map an endian-aware type EndianType as some other type MapType.

    Defined at line 26 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • Metadata * getKeyValMD (LLVMContext & Context, const char * Key, uint64_t Val)

    Return an MDTuple with two elements. The first element is a string Key and

    the second is a uint64_t Value.

    Defined at line 26 of file llvm/lib/IR/ProfileSummary.cpp

  • Value * getRuntimeLoopRemainder (IRBuilderBase & B, Value * Len, Value * OpSize, unsigned int OpSizeVal)

    Defined at line 26 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • int parseIR (LLVMContext & C, const char * IR)

    Defined at line 26 of file llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp

  • basic_string getOptionName (const Record & R)

    Defined at line 26 of file llvm/utils/TableGen/OptionParserEmitter.cpp

  •  mainWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 26 of file llvm/unittests/ExecutionEngine/Orc/CallSPSViaEPCTest.cpp

  • void checkResultType (const SelectionDAG & DAG, const SDNode * N, unsigned int ResIdx, EVT ExpectedVT)

    Defined at line 26 of file llvm/lib/CodeGen/SelectionDAG/SDNodeInfo.cpp

  •  incrementWrapper (const char * ArgData, size_t ArgSize)

    A basic function to be used as both initializer/deinitializer

    Defined at line 26 of file llvm/unittests/ExecutionEngine/Orc/SharedMemoryMapperTest.cpp

  • void handleDiagnostic (const SMDiagnostic & Diag, void * Ctx)

    Defined at line 26 of file llvm/lib/Remarks/YAMLRemarkParser.cpp

  • size_t getSizeColumnWidth (const SectionSizes & Sizes, StringRef SectionSizeTitle)

    Defined at line 26 of file llvm/tools/llvm-dwarfdump/SectionSizes.cpp

  • void runWithDomTree (Module & M, StringRef FuncName, function_ref Test)

    Build the dominator tree for the function and run the Test.

    Defined at line 26 of file llvm/unittests/IR/DominatorTreeTest.cpp

  • void printFile (raw_ostream & O, StringRef Filename, StringRef Directory, unsigned int Line)

    Defined at line 26 of file llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp

  • uint32_t getFlags (const Symbol * Sym)

    Defined at line 26 of file llvm/lib/Object/TapiFile.cpp

  • AssertionResult ErrorEquals (Error E, coveragemap_error Expected_Err, const std::string & Expected_Msg)

    Defined at line 26 of file llvm/unittests/ProfileData/CoverageMappingTest.cpp

  • vector getDominators (BasicBlock * BB)

    Return a vector of Blocks that dominates this block, excluding current

    block.

    Defined at line 26 of file llvm/lib/FuzzMutate/RandomIRBuilder.cpp

  • basic_string mangleFunc (StringRef IRName, LinkageTypes Linkage, llvm::CallingConv::ID CC, Module & Mod, Mangler & Mang)

    Defined at line 26 of file llvm/unittests/IR/ManglerTest.cpp

  • Type toRemarkType (DiagnosticKind Kind)

    DiagnosticKind -> remarks::Type

    Defined at line 26 of file llvm/lib/IR/LLVMRemarkStreamer.cpp

  • bool stripDeadPrototypes (Module & M)

    Defined at line 26 of file llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp

  • MVT getRegisterValueType (const Record * R, const CodeGenTarget & T)

    getRegisterValueType - Look up and return the ValueType of the specified

    register. If the register is a member of multiple register classes, they

    must all have the same type.

    Defined at line 26 of file llvm/utils/TableGen/DAGISelMatcherGen.cpp

  • CPUSubTypeARM getARMSubType (const Triple & T)

    Defined at line 26 of file llvm/lib/BinaryFormat/MachO.cpp

  • bool CC_X86_32_RegCall_Assign2Regs (unsigned int & ValNo, MVT & ValVT, MVT & LocVT, CCValAssign::LocInfo & LocInfo, ISD::ArgFlagsTy & ArgFlags, CCState & State)

    When regcall calling convention compiled to 32 bit arch, special treatment

    is required for 64 bit masks.

    The value should be assigned to two GPRs.

    Returns

    true if registers were allocated and false otherwise.

    Defined at line 26 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • void identifyUninterestingMDNodes (Oracle & O, MDNodeList & MDs)

    Defined at line 26 of file llvm/tools/llvm-reduce/deltas/ReduceDIMetadata.cpp

  • VTuneMethodBatch getMethodBatch (LinkGraph & G, bool EmitDebugInfo)

    Defined at line 26 of file llvm/lib/ExecutionEngine/Orc/Debugging/VTuneSupportPlugin.cpp

  • bool isELFAArch32StubsSection (Section & S)

    Defined at line 27 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp

  • bool shouldReduceUnnamedAddress (GlobalValue & GV)

    Defined at line 27 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalValues.cpp

  • Error failUnsupported (const Twine & Reason)

    FIXME: Use createStringError instead.

    Defined at line 27 of file llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp

  • void initializeMachineDominanceFrontierPassOnce (PassRegistry & Registry)

    Defined at line 27 of file llvm/lib/CodeGen/MachineDominanceFrontier.cpp

  • SecondMacroFusionInstKind classifySecond (const MachineInstr & MI)

    Defined at line 27 of file llvm/lib/Target/X86/X86MacroFusion.cpp

  • basic_string getExePath ()

    Defined at line 27 of file llvm/unittests/DebugInfo/PDB/NativeSessionTest.cpp

  • void setRecordName (unsigned int RecordID, BitstreamWriter & Bitstream, SmallVectorImpl<uint64_t> & R, StringRef Str)

    Defined at line 27 of file llvm/lib/Remarks/BitstreamRemarkSerializer.cpp

  • void insertIfNamed (SetVector<Value *> & Values, Value * V)

    Defined at line 27 of file llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp

  • basic_string convertToErrorFromString (StringRef Str)

    Defined at line 27 of file llvm/unittests/ADT/APFloatTest.cpp

  • unique_ptr makeLLVMModule (LLVMContext & Context, StringRef ModuleStr)

    Defined at line 27 of file llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp

  • TypeIndex createArgListRecord (AppendingTypeTableBuilder & Builder, TypeIndex Q, TypeIndex R)

    Defined at line 27 of file llvm/unittests/DebugInfo/CodeView/TypeHashingTest.cpp

  • bool canComputePointerDiff (ScalarEvolution & SE, const SCEV * A, const SCEV * B)

    Defined at line 27 of file llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp

  • void outputSpaceIfNecessary (OutputBuffer & OB)

    Writes a space if the last token does not end with a punctuation.

    Defined at line 27 of file llvm/lib/Demangle/MicrosoftDemangleNodes.cpp

  • template <typename T>
    const T * Find (StringRef S, ArrayRef<T> A)

    Find KV in array using binary search.

    Defined at line 27 of file llvm/lib/MC/MCSubtargetInfo.cpp

  • void chunk_state_reset (llvm_blake3_chunk_state * self, const uint32_t[8] key, uint64_t chunk_counter)

    Defined at line 27 of file llvm/lib/Support/BLAKE3/blake3.c

  • void checkAnalyze (StringRef Input, StringRef Expected)

    Defined at line 27 of file llvm/unittests/Remarks/BitstreamRemarksSerializerTest.cpp

  • Expected getFirstRelocationEdge (LinkGraph & G, Block & B)

    Defined at line 27 of file llvm/tools/llvm-jitlink/llvm-jitlink-coff.cpp

  • template <typename T>
    bool mapOptOrNull (const llvm::json::Value & Params, StringLiteral Prop, T & Out, Path Path)

    Helper that doesn't treat `null` and absent fields as failures.

    Defined at line 27 of file llvm/lib/Support/LSP/Protocol.cpp

  • void appendSpeculatableOperands (const Value * V, SmallPtrSetImpl<const Value *> & Visited, SmallVectorImpl<const Value *> & Worklist)

    Defined at line 27 of file llvm/lib/Analysis/CodeMetrics.cpp

  • uint32_t getHashForUdt (const TagRecord & Rec, ArrayRef FullRecord)

    Computes the hash for a user-defined type record. This could be a struct,

    class, union, or enum.

    Defined at line 27 of file llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp

  • bool isNeutralElement (uint64_t Op, uint64_t Val)

    Returns true if an operation and operand result in a No Op.

    Defined at line 27 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • void tryEmitAutoInitRemark (ArrayRef<Instruction *> Instructions, OptimizationRemarkEmitter & ORE, const TargetLibraryInfo & TLI)

    Defined at line 27 of file llvm/lib/Transforms/Scalar/AnnotationRemarks.cpp

  • void PrintMessage (ArrayRef Locs, DiagKind Kind, const Twine & Msg)

    Defined at line 27 of file llvm/lib/TableGen/Error.cpp

  • StringRef getImageName (const OffloadBinary & OB)

    Get the printable name of the image kind.

    Defined at line 27 of file llvm/tools/llvm-objdump/OffloadDump.cpp

  • LLVMModuleRef llvm_load_module (LLVMContextRef C, _Bool Lazy, _Bool New)

    module.c

    Defined at line 27 of file llvm/tools/llvm-c-test/module.c

  • template <size_t N>
    bool startswith (StringRef Magic, const char (&)[N] S)

    Defined at line 28 of file llvm/lib/BinaryFormat/Magic.cpp

  • OptDisable & getOptDisabler ()

    Defined at line 28 of file llvm/lib/IR/OptBisect.cpp

  • LLVMObjectFileRef wrap (const OwningBinary<ObjectFile> * OF)

    Defined at line 28 of file llvm/lib/Object/Object.cpp

  • void initializeLocalizerPassOnce (PassRegistry & Registry)

    Defined at line 28 of file llvm/lib/CodeGen/GlobalISel/Localizer.cpp

  • Error mapLocalVariableAddrRange (CodeViewRecordIO & IO, LocalVariableAddrRange & Range)

    Defined at line 28 of file llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 28 of file llvm/unittests/IR/BasicBlockDbgInfoTest.cpp

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 28 of file llvm/unittests/Transforms/Utils/CallPromotionUtilsTest.cpp

  • int getListSize (Module & M, StringRef Name)

    Defined at line 28 of file llvm/unittests/Transforms/Utils/ModuleUtilsTest.cpp

  • void collectImpliedFeatures (std::set<const Record *> & SeenFeats, const Record * Rec)

    Collect the full set of implied features for a SubtargetFeature.

    Defined at line 28 of file llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp

  • bool callingConvRequiresArgument (const Function & F, const Argument & Arg)

    Defined at line 28 of file llvm/tools/llvm-reduce/deltas/ReduceArguments.cpp

  • unsigned int FindFirstNonCommonLetter (ArrayRef Matches)

    FindFirstNonCommonLetter - Find the first character in the keys of the

    string pairs that is not shared across the whole set of strings. All

    strings are assumed to have the same length.

    Defined at line 28 of file llvm/lib/TableGen/StringMatcher.cpp

  • bool testBuildAttr (unsigned int Tag, unsigned int Value, unsigned int ExpectedTag, unsigned int ExpectedValue)

    Defined at line 28 of file llvm/unittests/Support/ARMAttributeParser.cpp

  • void printExtensionTable (raw_ostream & OS, ArrayRef Extensions, bool Experimental)

    Defined at line 28 of file llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  • Expected getInstrProfSection (const object::ObjectFile & Obj, InstrProfSectKind IPSK)

    Get profile section.

    Defined at line 28 of file llvm/lib/ProfileData/InstrProfCorrelator.cpp

  • void sinkDefsToUsesInFunction (Oracle & O, Function & F)

    Defined at line 28 of file llvm/tools/llvm-reduce/deltas/ReduceSinkDefsToUses.cpp

  • bool consumeFieldLayout (StringRef & Spec, AlignStyle & Where, unsigned int & Align, char & Pad)

    Defined at line 28 of file llvm/lib/Support/FormatVariadic.cpp

  • bool canReduceUse (Use & Op)

    Defined at line 28 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp

  • void removeGlobalCtors (GlobalVariable * GCL, const BitVector & CtorsToRemove)

    Given a specified llvm.global_ctors list, remove the listed elements.

    Defined at line 28 of file llvm/lib/Transforms/Utils/CtorUtils.cpp

  • bool runImpl (Function & F, const SimplifyQuery & SQ)

    Defined at line 28 of file llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp

  • basic_string computeARMDataLayout (const Triple & TT, StringRef ABIName)

    Defined at line 28 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • bool checkIntegrityScopesTree (LVScope * Root)

    Detect elements that are inserted more than once at different scopes,

    causing a crash on the reader destruction, as the element is already

    deleted from other scope. Helper for CodeView reader.

    Defined at line 28 of file llvm/lib/DebugInfo/LogicalView/Core/LVReader.cpp

  • void initializeMachineCycleInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 29 of file llvm/lib/CodeGen/MachineCycleAnalysis.cpp

  • bool shouldKeepDebugIntrinsicMetadata (Instruction & I, MDNode & MD)

    Defined at line 29 of file llvm/tools/llvm-reduce/deltas/ReduceMetadata.cpp

  • void sleep_for (unsigned int seconds)

    Defined at line 29 of file llvm/unittests/Support/ProgramTest.cpp

  • PointerMode getPointerMode (uint32_t Attrs)

    Defined at line 29 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • bool operator== (const HTTPRequest & A, const HTTPRequest & B)

    Defined at line 29 of file llvm/lib/Debuginfod/HTTPClient.cpp

  • bool LowerLoadInst (LoadInst * LI)

    Defined at line 29 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp

  • void addAsyncWrapper (unique_function SendResult, int32_t X, int32_t Y)

    Defined at line 29 of file llvm/unittests/ExecutionEngine/Orc/ExecutionSessionWrapperFunctionCallsTest.cpp

  • Expected loadDylib (llvm::orc::ExecutionSession & ES, StringRef RemotePath)

    Defined at line 29 of file llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/RemoteJITUtils.cpp

  • LLVMBool LLVMParseBitcode2 (LLVMMemoryBufferRef MemBuf, LLVMModuleRef * OutModule)

    Builds a module from the bitcode in the specified memory buffer, returning a

    reference to the module via the OutModule parameter. Returns 0 on success.

    Defined at line 29 of file llvm/lib/Bitcode/Reader/BitReader.cpp

  • Value * replaceIntrinsic (Module & M, IntrinsicInst * II, Intrinsic::ID NewIID, ArrayRef Tys)

    Defined at line 29 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp

  • Expected getRemarksSectionName (const object::ObjectFile & Obj)

    Defined at line 29 of file llvm/lib/Remarks/RemarkLinker.cpp

  • BasicBlock * getUserBB (Use * U)

    Helper function for finding a block which should have a value for the given

    user. For PHI-nodes this block is the corresponding predecessor, for other

    instructions it's their parent block.

    Defined at line 29 of file llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp

  • unsigned int getSectionID (const ObjectFile & O, SectionRef Sec)

    Defined at line 29 of file llvm/lib/Object/SymbolSize.cpp

  • bool canPHITrans (Instruction * Inst)

    Defined at line 29 of file llvm/lib/Analysis/PHITransAddr.cpp

  • uint64_t debugStrOffsetsHeaderSize (DataExtractor StrOffsetsData, uint16_t DwarfVersion)

    Returns the size of debug_str_offsets section headers in bytes.

    Defined at line 29 of file llvm/lib/DWP/DWP.cpp

  • Expected getFirstRelocationEdge (LinkGraph & G, Block & B)

    Defined at line 29 of file llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp

  • void RunTest (StringRef Head, StringRef Tail, std::vector<std::pair<StringRef, llvm::function_ref<void (Instruction *)>>> & Tests)

    Defined at line 29 of file llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp

  • void orc_rt_lite_reoptimize_helper (shared::CWrapperFunctionBuffer (*)(void *, void *, void *, size_t) JITDispatch, void * JITDispatchCtx, void * Tag, uint64_t MUID, uint32_t CurVersion)

    Defined at line 29 of file llvm/lib/ExecutionEngine/Orc/ReOptimizeLayer.cpp

  • void printName (raw_ostream & OS, StringRef Name)

    Defined at line 29 of file llvm/lib/MC/MCAsmInfoWasm.cpp

  • bool shouldConvertToRelLookupTable (LookupTableInfo & Info, Module & M, GlobalVariable & GV)

    Defined at line 29 of file llvm/lib/Transforms/Utils/RelLookupTableConverter.cpp

  • Expected dumpDXContainer (MemoryBufferRef Source)

    Defined at line 29 of file llvm/tools/obj2yaml/dxcontainer2yaml.cpp

  • GenericValue * unwrap (LLVMGenericValueRef P)

    Wrapping the C bindings types.

    Defined at line 30 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMGenericValueRef wrap (const GenericValue * P)

    Wrapping the C bindings types.

    Defined at line 30 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void LLVMLinkInInterpreter ()

    Empty function used to force the linker to link the LLVM interpreter.

    Has no effect when called on a pre-built library (dylib interface).

    Defined at line 30 of file llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp

  • void or32le (void * P, int32_t V)

    Defined at line 30 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • uint32_t blk0 (uint32_t * Buf, int I)

    Defined at line 30 of file llvm/lib/Support/SHA1.cpp

  • Expected getRemarkFilters ()

    Defined at line 30 of file llvm/tools/llvm-remarkutil/RemarkCounter.cpp

  • basic_string gtest_DLangDemangleTestDLangDemangleTestFixture_EvalGenerateName_ (const ::testing::TestParamInfo<DLangDemangleTestFixture::ParamType> & info)

    Defined at line 30 of file llvm/unittests/Demangle/DLangDemangleTest.cpp

  • ParamGenerator gtest_DLangDemangleTestDLangDemangleTestFixture_EvalGenerator_ ()

    Defined at line 30 of file llvm/unittests/Demangle/DLangDemangleTest.cpp

  • void anchor ()

    Defined at line 30 of file llvm/unittests/Passes/Plugins/PluginsTest.cpp

  • bool operator< (const DeltaInfo & LHS, int64_t Delta)

    Defined at line 30 of file llvm/lib/DebugInfo/GSYM/LineTable.cpp

  • bool isAligned (const Value * Base, Align Alignment, const DataLayout & DL)

    Defined at line 30 of file llvm/lib/Analysis/Loads.cpp

  • LLVMTargetLibraryInfoRef wrap (const TargetLibraryInfoImpl * P)

    Defined at line 30 of file llvm/lib/Target/Target.cpp

  • unsigned int checkArchVersion (StringRef Arch)

    Defined at line 30 of file llvm/lib/TargetParser/AArch64TargetParser.cpp

  • unsigned int getUnsignedFromPrefixEncoding (unsigned int U)

    Reverse transformation as getPrefixEncodingFromUnsigned.

    Defined at line 30 of file llvm/include/llvm/Support/Discriminator.h

  • SmallVector getArgTypes (ArrayRef FunctionArgs)

    Defined at line 30 of file llvm/lib/Transforms/Instrumentation/RealtimeSanitizer.cpp

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 30 of file llvm/benchmarks/SandboxIRBench.cpp

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 30 of file llvm/unittests/IR/DebugInfoTest.cpp

  • Constant * getNegativeIsTrueBoolVec (Constant * V, const DataLayout & DL)

    Return a constant boolean vector that has true elements in all positions

    where the input constant data vector has an element with the sign bit set.

    Defined at line 30 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • basic_string getOSVersion ()

    Defined at line 30 of file llvm/lib/TargetParser/Unix/Host.inc

  • StringRef getDIEStringAttr (const DIE & Die, uint16_t Attr)

    Grabs the string in whichever attribute is passed in and returns

    a reference to it.

    Defined at line 30 of file llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp

  • vector tokenize (StringRef S)

    Defined at line 30 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • template <typename SectionType>
    Section constructSectionCommon (const SectionType & Sec, uint32_t Index)

    Defined at line 30 of file llvm/lib/ObjCopy/MachO/MachOReader.cpp

  • template <class ArgIt>
    CallInst * ReplaceCallWith (const char * NewFn, CallInst * CI, ArgIt ArgBegin, ArgIt ArgEnd, Type * RetTy)

    This function is used when we want to lower an intrinsic call to a call of

    an external function. This handles hard cases such as when there was already

    a prototype for the external function, but that prototype doesn't match the

    arguments we expect to pass in.

    Defined at line 30 of file llvm/lib/CodeGen/IntrinsicLowering.cpp

  • KnownBits computeForAddCarry (const KnownBits & LHS, const KnownBits & RHS, bool CarryZero, bool CarryOne)

    Defined at line 30 of file llvm/lib/Support/KnownBits.cpp

  • Value * fitArgInto64Bits (IRBuilder<> & Builder, Value * Arg)

    Defined at line 30 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • AssertionResult checkResult (Twine Name, const KnownBits & Exact, const KnownBits & Computed, ArrayRef Inputs, bool CheckOptimality)

    Defined at line 30 of file llvm/unittests/Support/KnownBitsTest.cpp

  • bool isSafeToMove (Instruction * Inst, AliasAnalysis & AA, SmallPtrSetImpl<Instruction *> & Stores)

    Defined at line 30 of file llvm/lib/Transforms/Scalar/Sink.cpp

  • void appendToGlobalArray (StringRef ArrayName, Module & M, Function * F, int Priority, Constant * Data)

    Defined at line 30 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • void emitCATTR (raw_ostream & OS, StringRef Name, ESDRmode Rmode, ESDAlignment Alignment, ESDLoadingBehavior LoadBehavior, ESDExecutable Executable, bool IsReadOnly, uint32_t SortKey, uint8_t FillByteValue, StringRef PartName)

    Defined at line 30 of file llvm/lib/MC/MCAsmInfoGOFF.cpp

  • bool tryToImproveAlign (const DataLayout & DL, Instruction * I, function_ref Fn)

    Defined at line 30 of file llvm/lib/Transforms/Scalar/InferAlignment.cpp

  • void initializeEdgeBundlesWrapperLegacyPassOnce (PassRegistry & Registry)

    Defined at line 31 of file llvm/lib/CodeGen/EdgeBundles.cpp

  • int freeBinaryOp (int , float )

    Defined at line 31 of file llvm/unittests/ExecutionEngine/Orc/CallableTraitsHelperTest.cpp

  • bool isSignedChar (char C)

    Defined at line 31 of file llvm/lib/Support/FileUtilities.cpp

  • bool shouldReduceDLLStorageClass (GlobalValue & GV)

    Defined at line 31 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalValues.cpp

  • void setMaxOnDiskCASMappingSize ()

    Defined at line 31 of file llvm/unittests/CAS/CASTestConfig.cpp

  • void writeTitle (StringRef Str, raw_ostream & OS, char Kind)

    Defined at line 31 of file llvm/utils/TableGen/InstrDocsEmitter.cpp

  • int LLVMWriteBitcodeToFD (LLVMModuleRef M, int FD, int ShouldClose, int Unbuffered)

    Writes a module to an open file descriptor. Returns 0 on success.

    Defined at line 31 of file llvm/lib/Bitcode/Writer/BitWriter.cpp

  • int parseIR (LLVMContext & C, const char * IR)

    Defined at line 31 of file llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp

  • unique_ptr readModule (LLVMContext & Context, StringRef Name)

    Reads a module from a file. On error, messages are written to stderr

    and null is returned.

    Defined at line 31 of file llvm/tools/llvm-diff/llvm-diff.cpp

  • uint8_t * roundTripAllocateCodeSection (void * object, uintptr_t size, unsigned int alignment, unsigned int sectionID, const char * sectionName)

    Defined at line 31 of file llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp

  • void createDeadDef (SlotIndexes & Indexes, VNInfo::Allocator & Alloc, LiveRange & LR, const MachineOperand & MO)

    Defined at line 31 of file llvm/lib/CodeGen/LiveIntervalCalc.cpp

  • StringMapEntryBase ** createTable (unsigned int NewNumBuckets)

    Defined at line 31 of file llvm/lib/Support/StringMap.cpp

  • template <typename... Ts>
    void error (error_code EC, const char * Fmt, const Ts &... Vals)

    Defined at line 31 of file llvm/tools/llvm-debuginfo-analyzer/llvm-debuginfo-analyzer.cpp

  • void ExpectThatElementsAre (sandboxir::SeedBundle & SR, llvm::ArrayRef<sandboxir::Instruction *> Contents)

    TODO: gcc-10 has a bug that causes the below line not to compile due to some

    macro-magic in gunit in combination with a class with pure-virtual

    function. Once gcc-10 is no longer supported, replace this function with

    something like the following:

    EXPECT_THAT(SB, testing::ElementsAre(St0, St1, St2, St3));

    Defined at line 31 of file llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SeedCollectorTest.cpp

  • Expected getFirstRelocationEdge (LinkGraph & G, Block & B)

    Defined at line 31 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp

  • void run (Module & M, StringRef FuncName, function_ref<void (Function &, DominatorTree &, ScalarEvolution &, LoopInfo &)> Test)

    Defined at line 31 of file llvm/unittests/Transforms/Utils/LoopUtilsTest.cpp

  • vector getRandomFuncNames ()

    Defined at line 31 of file llvm/benchmarks/RuntimeLibcalls.cpp

  • void lowerSubFn (IRBuilder<> & Builder, CoroSubFnInst * SubFn)

    Defined at line 31 of file llvm/lib/Transforms/Coroutines/CoroCleanup.cpp

  • basic_string formatLocalSymFlags (uint32_t IndentLevel, LocalSymFlags Flags)

    Defined at line 31 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • bool useCompactUnwind (const Triple & T)

    Defined at line 31 of file llvm/lib/MC/MCObjectFileInfo.cpp

  • void vTtoGetLlvmTyString (raw_ostream & OS, const Record * VT)

    Defined at line 31 of file llvm/utils/TableGen/Basic/VTEmitter.cpp

  • void initializeRuntimeLibraryInfoWrapperPassOnce (PassRegistry & Registry)

    Defined at line 32 of file llvm/lib/Analysis/RuntimeLibcallInfo.cpp

  • bool bundleHasArgument (const CallBase::BundleOpInfo & BOI, unsigned int Idx)

    Defined at line 32 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • void or32AArch64Imm (void * L, uint64_t Imm)

    Defined at line 32 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • template <typename T>
    BinaryRef makeBinRef (const T * Ptr, size_t Size)

    Defined at line 32 of file llvm/unittests/DebugInfo/BTF/BTFParserTest.cpp

  • void initializeDominanceFrontierWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 32 of file llvm/lib/Analysis/DominanceFrontier.cpp

  • unsigned short MakeMask (unsigned int V0, unsigned int V1, unsigned int V2, unsigned int V3)

    Mask manipulation functions.

    Defined at line 32 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • bool canUseNonVoidReturnType (const Function & F)

    Return true if it is legal to emit a copy of the function with a non-void

    return type.

    Defined at line 32 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • void testParseError (ArrayRef bytes, const char * msg)

    Defined at line 32 of file llvm/unittests/Support/ELFAttributeParserTest.cpp

  • uint32_t blk (uint32_t * Buf, int I)

    Defined at line 32 of file llvm/lib/Support/SHA1.cpp

  • void __jit_debug_register_code ()

    Debuggers that implement the GDB JIT interface put a special breakpoint in

    this function.

    Defined at line 32 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.cpp

  • template <typename T>
    T getUniversalBinaryStruct (const char * Ptr)

    Defined at line 32 of file llvm/lib/Object/MachOUniversal.cpp

  • basic_string getEnumNameForPredicate (const TreePredicateFn & Predicate)

    Get the name of the enum value used to number the predicate function.

    Defined at line 32 of file llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp

  • basic_string LibPath (basic_string Name)

    Defined at line 32 of file llvm/unittests/Passes/Plugins/PluginsTest.cpp

  • uint32_t calculateDiSymbolStreamSize (uint32_t SymbolByteSize, uint32_t C13Size)

    Defined at line 32 of file llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp

  • template <typename ContribType>
    Error loadSectionContribs (FixedStreamArray<ContribType> & Output, BinaryStreamReader & Reader)

    Defined at line 32 of file llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp

  • void normalizeCharSetName (StringRef CSName, SmallVectorImpl<char> & Normalized)

    Normalize the charset name with the charset alias matching algorithm proposed

    in https://www.unicode.org/reports/tr22/tr22-8.html#Charset_Alias_Matching.

    Defined at line 32 of file llvm/lib/Support/TextEncoding.cpp

  • Libcall GetFPLibCall (EVT VT, Libcall Call_F32, Libcall Call_F64, Libcall Call_F80, Libcall Call_F128, Libcall Call_PPCF128)

    GetFPLibCall - Return the right libcall for the given floating point type.

    FIXME: This is a local version of RTLIB::getFPLibCall that should be

    refactored away (see RTLIB::getPOWI for an example).

    Defined at line 32 of file llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp

  • int sizeOfSCEV (const SCEV * S)

    Defined at line 32 of file llvm/lib/Analysis/ScalarEvolutionDivision.cpp

  • bool isSuspendReachableFrom (BasicBlock * From, VisitedBlocksSet & VisitedOrFreeBBs)

    Does control flow starting at the given block ever reach a suspend

    instruction before reaching a block in VisitedOrFreeBBs?

    Defined at line 32 of file llvm/lib/Transforms/Coroutines/SpillUtils.cpp

  • Error finishVisitation (CVSymbol & Record, SymbolVisitorCallbacks & Callbacks)

    Defined at line 32 of file llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp

  • Value * generateSignedRemainderCode (Value * Dividend, Value * Divisor, IRBuilder<> & Builder)

    Generate code to compute the remainder of two signed integers. Returns the

    remainder, which will have the sign of the dividend. Builder's insert point

    should be pointing where the caller wants code generated, e.g. at the srem

    instruction. This will generate a urem in the process, and Builder's insert

    point will be pointing at the uren (if present, i.e. not folded), ready to

    be expanded if the user wishes

    Defined at line 32 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • StringRef getResourceKindName (ResourceKind RK)

    Defined at line 32 of file llvm/lib/Analysis/DXILResource.cpp

  • iterator_range getFirstCompositeRange (iterator_range Leafs)

    Defined at line 32 of file llvm/lib/Frontend/OpenMP/OMP.cpp

  • Error loadNaiveFormatLog (StringRef Data, bool IsLittleEndian, XRayFileHeader & FileHeader, std::vector<XRayRecord> & Records)

    Defined at line 32 of file llvm/lib/XRay/Trace.cpp

  • bool startsWithDigit (basic_string_view S)

    Defined at line 33 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • section_iterator * unwrap (LLVMSectionIteratorRef SI)

    Defined at line 33 of file llvm/lib/Object/Object.cpp

  • bool shouldKeepDebugNamedMetadata (NamedMDNode & MD)

    Defined at line 33 of file llvm/tools/llvm-reduce/deltas/ReduceMetadata.cpp

  • LLVMTargetMachineRef wrap (const TargetMachine * P)

    Wrapping the C bindings types.

    Defined at line 33 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • template <typename T>
    void compareData (ArrayIndexedAccessorRange<T> range, ArrayRef<T> referenceData)

    Defined at line 33 of file llvm/unittests/Support/IndexedAccessorTest.cpp

  • AtomicOrdering strongerOrdering (AtomicOrdering X, AtomicOrdering Y)

    Return the stronger of the two ordering. If the two orderings are acquire

    and release, then return AcquireRelease.

    Defined at line 33 of file llvm/lib/Transforms/Utils/GlobalStatus.cpp

  • void parseGoodMeta (StringRef Buf)

    Defined at line 33 of file llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp

  • StringRef getInvalidNoteELF (bool WithShdr)

    Defined at line 33 of file llvm/unittests/Object/BuildIDTest.cpp

  • bool PrintInsts (const MCDisassembler & DisAsm, const ByteArrayTy & Bytes, SourceMgr & SM, raw_ostream & Out, MCStreamer & Streamer, bool InAtomicBlock, const MCSubtargetInfo & STI)

    Defined at line 33 of file llvm/tools/llvm-ml/Disassembler.cpp

  • unordered_multimap loadDataFiles (const std::string & NamesFile, const std::string & AliasesFile)

    Collect names UnicodeData.txt and AliasNames.txt

    There may be multiple names per code points.

    Defined at line 33 of file llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp

  • Error extractOffloadBundle (MemoryBufferRef Contents, uint64_t SectionOffset, StringRef FileName, SmallVectorImpl<OffloadBundleFatBin> & Bundles)

    Extract an Offload bundle (usually a Offload Bundle) from a fat_bin

    section.

    Defined at line 33 of file llvm/lib/Object/OffloadBundle.cpp

  • void initializeCodeGenTestPassOnce (PassRegistry & Registry)

    Defined at line 34 of file llvm/unittests/CodeGen/CGPluginTest/Plugin/CodeGenTestPass.cpp

  • int SortSymbolPair (const PairTy * LHS, const PairTy * RHS)

    Defined at line 34 of file llvm/lib/CodeGen/MachineModuleInfoImpls.cpp

  • bool isHazard (const SDep & Dep)

    Defined at line 34 of file llvm/lib/CodeGen/MacroFusion.cpp

  • LLVMComdatRef LLVMGetOrInsertComdat (LLVMModuleRef M, const char * Name)

    Return the Comdat in the module with the specified name. It is created

    if it didn't already exist.

    Defined at line 34 of file llvm/lib/IR/Comdat.cpp

  •  voidWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 34 of file llvm/unittests/ExecutionEngine/Orc/ExecutionSessionWrapperFunctionCallsTest.cpp

  • bool LowerStoreInst (StoreInst * SI)

    Defined at line 34 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp

  • bool isMemberPointer (uint32_t Attrs)

    Defined at line 34 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • void printReferenceBase (raw_ostream & OS, StringRef Kind, uint64_t InternalRef, optional ID)

    Defined at line 34 of file llvm/lib/CAS/ObjectStore.cpp

  • bool checkModuleSubsection (ModuleSubsection MS)

    Defined at line 34 of file llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp

  • AssertionResult NoError (error_code EC)

    Defined at line 34 of file llvm/unittests/ProfileData/SampleProfTest.cpp

  • Metadata * getKeyFPValMD (LLVMContext & Context, const char * Key, double Val)

    Defined at line 34 of file llvm/lib/IR/ProfileSummary.cpp

  • int64_t getAsInt (const Init * B)

    Defined at line 34 of file llvm/utils/TableGen/SearchableTableEmitter.cpp

  • template <typename T>
    Error visitKnownMember (CVMemberRecord & Record, TypeVisitorCallbacks & Callbacks)

    Defined at line 34 of file llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp

  • raw_ostream & writeStrTableOffset (raw_ostream & OS, const StringToOffsetTable & Table, StringRef Str)

    Defined at line 34 of file llvm/utils/TableGen/OptionParserEmitter.cpp

  • Error createSMDiagnosticError (llvm::SMDiagnostic & Diag)

    Defined at line 34 of file llvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/../ExampleModules.h

  • void setImpliedBits (FeatureBitset & Bits, const FeatureBitset & Implies, ArrayRef FeatureTable)

    For each feature that is (transitively) implied by this feature, set it.

    Defined at line 34 of file llvm/lib/TargetParser/TargetParser.cpp

  • bool rcGetAsInteger (StringRef Representation, uint32_t & Num)

    Checks if Representation is a correct description of an RC integer.

    It should be a 32-bit unsigned integer, either decimal or hexadecimal

    (0x[0-9a-f]+). For Windres mode, it can also be octal (0[0-7]+).

    It might be followed by a single 'L' character (that is the difference

    between our representation and StringRef's one). If Representation is

    correct, 'true' is returned and the return value is put back in Num.

    Defined at line 34 of file llvm/tools/llvm-rc/ResourceScriptToken.cpp

  • void checkError (ArrayRef ExpectedMsgs, Error Err)

    Defined at line 34 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • void run (Module & M, StringRef FuncName, function_ref<void (Function &, DominatorTree &, PostDominatorTree &, DependenceInfo &)> Test)

    Defined at line 34 of file llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp

  • bool encodeSpecial (int64_t MinLineDelta, int64_t MaxLineDelta, int64_t LineDelta, uint64_t AddrDelta, uint8_t & SpecialOp)

    Defined at line 34 of file llvm/lib/DebugInfo/GSYM/LineTable.cpp

  • bool isCaseSensitivePath (StringRef Path)

    Defined at line 34 of file llvm/lib/Support/FileCollector.cpp

  • const char * stringForContext (InstructionContext insnContext)

    stringForContext - Returns a string containing the name of a particular

    InstructionContext, usually for diagnostic purposes.

    Parameters

    insnContext - The instruction class to transform to a string.

    Returns

    - A statically-allocated string constant that contains the

    name of the instruction class.

    Defined at line 34 of file llvm/utils/TableGen/X86DisassemblerTables.cpp

  • StringRef knownBundleName (unsigned int BundleTagID)

    Defined at line 34 of file llvm/lib/IR/LLVMContext.cpp

  • void ProcessElementList (StringTableBuilder & StrTabBuilder, SmallVectorImpl<uint32_t> & IndexBuffer, SmallVectorImpl<v0::SignatureElement> & FinalElements, SmallVectorImpl<StringRef> & SemanticNames, ArrayRef Elements)

    Defined at line 34 of file llvm/lib/MC/DXContainerPSVInfo.cpp

  • const char * DecodeDWARFEncoding (unsigned int Encoding)

    ===----------------------------------------------------------------------===//

    Dwarf Emission Helper Routines

    ===----------------------------------------------------------------------===//

    Defined at line 34 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp

  • int llvm_test_dibuilder ()

    debuginfo.c

    Defined at line 34 of file llvm/tools/llvm-c-test/debuginfo.c

  • void initializeBasicBlockSectionsProfileReaderWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 35 of file llvm/lib/CodeGen/BasicBlockSectionsProfileReader.cpp

  • Expected getRemarkFilters ()

    Defined at line 35 of file llvm/tools/llvm-remarkutil/RemarkFilter.cpp

  • void suppressErrorMessages (const llvm::SMDiagnostic & , void * )

    Defined at line 35 of file llvm/unittests/Support/YAMLIOTest.cpp

  • uint64_t KindFromData (uint64_t Data, char SizeofPtr)

    Defined at line 35 of file llvm/tools/sanstats/sanstats.cpp

  • void printRecords (const RecordKeeper & Records, raw_ostream & OS)

    Defined at line 35 of file llvm/utils/TableGen/Basic/TableGen.cpp

  • unique_ptr getSymbolType (const PDBSymbol & Symbol)

    Defined at line 35 of file llvm/lib/DebugInfo/PDB/UDTLayout.cpp

  • void getVectors (Module & M, IRInstructionMapper & Mapper, std::vector<IRInstructionData *> & InstrList, std::vector<unsigned int> & UnsignedVec)

    Defined at line 35 of file llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp

  • Limits makeLimits (const wasm::WasmLimits & Limits)

    Defined at line 35 of file llvm/tools/obj2yaml/wasm2yaml.cpp

  • double convertToDoubleFromString (StringRef Str)

    Defined at line 35 of file llvm/unittests/ADT/APFloatTest.cpp

  • bool isExponentChar (char C)

    Defined at line 35 of file llvm/lib/Support/FileUtilities.cpp

  • template <typename T>
    Expected<ArrayRef<T>> getDataSliceAsArrayOf (ArrayRef Data, uint64_t Offset, uint64_t Count)

    Defined at line 35 of file llvm/lib/Object/SFrameParser.cpp

  • void initBlock (unsigned int BlockID, BitstreamWriter & Bitstream, SmallVectorImpl<uint64_t> & R, StringRef Str)

    Defined at line 35 of file llvm/lib/Remarks/BitstreamRemarkSerializer.cpp

  • __normal_iterator emplace (TripleVec & Container, Triple && T)

    Defined at line 35 of file llvm/lib/TextAPI/BinaryReader/DylibReader.cpp

  • TypeIndex createProcedureRecord (AppendingTypeTableBuilder & Builder, uint32_t ParamCount, TypeIndex Return, TypeIndex ArgList)

    Defined at line 35 of file llvm/unittests/DebugInfo/CodeView/TypeHashingTest.cpp

  • DenseSet getAssumptions (const Attribute & A)

    Defined at line 35 of file llvm/lib/IR/Assumptions.cpp

  • void runWithLoopInfoPlus (Module & M, StringRef FuncName, function_ref<void (Function &, LoopInfo &, ScalarEvolution &)> Test)

    Build the loop info and scalar evolution for the function and run the Test.

    Defined at line 35 of file llvm/unittests/Analysis/LoopInfoTest.cpp

  • bool testAttribute (unsigned int Tag, unsigned int Value, unsigned int ExpectedTag, unsigned int ExpectedValue)

    Defined at line 35 of file llvm/unittests/Support/RISCVAttributeParserTest.cpp

  • int llvm_set_metadata ()

    Defined at line 35 of file llvm/tools/llvm-c-test/metadata.c

  • LLVMBool LLVMParseBitcodeInContext (LLVMContextRef ContextRef, LLVMMemoryBufferRef MemBuf, LLVMModuleRef * OutModule, char ** OutMessage)

    This is deprecated. Use LLVMParseBitcodeInContext2.

    Defined at line 35 of file llvm/lib/Bitcode/Reader/BitReader.cpp

  • bool promoteMemoryToRegister (Function & F, DominatorTree & DT, AssumptionCache & AC)

    Defined at line 35 of file llvm/lib/Transforms/Utils/Mem2Reg.cpp

  • void RaiseLimits ()

    Defined at line 35 of file llvm/lib/Support/InitLLVM.cpp

  • Value * redirectToHub (BasicBlock * BB, BasicBlock * Succ0, BasicBlock * Succ1, BasicBlock * FirstGuardBlock)

    Redirects the terminator of the incoming block to the first guard block in

    the hub. Returns the branch condition from `BB` if it exits.

    - If only one of Succ0 or Succ1 is not null, the corresponding branch

    successor is redirected to the FirstGuardBlock.

    - Else both are not null, and branch is replaced with an unconditional

    branch to the FirstGuardBlock.

    Defined at line 35 of file llvm/lib/Transforms/Utils/ControlFlowUtils.cpp

  • void getNameWithPrefixImpl (raw_ostream & OS, const Twine & GVName, ManglerPrefixTy PrefixTy, const DataLayout & DL, char Prefix)

    Defined at line 35 of file llvm/lib/IR/Mangler.cpp

  • void addFlagsUsingAttrFn (ISD::ArgFlagsTy & Flags, const std::function<bool (Attribute::AttrKind)> & AttrFn)

    Helper function which updates

    when

    returns true.

    Defined at line 35 of file llvm/lib/CodeGen/GlobalISel/CallLowering.cpp

  • bool shouldScheduleAdjacent (const TargetInstrInfo & TII, const TargetSubtargetInfo & TSI, const MachineInstr * FirstMI, const MachineInstr & SecondMI)

    Check if the instr pair, FirstMI and SecondMI, should be fused

    together. Given SecondMI, when FirstMI is unspecified, then check if

    SecondMI may be part of a fused pair at all.

    Defined at line 35 of file llvm/lib/Target/X86/X86MacroFusion.cpp

  • void PrintResults (AliasResult AR, bool P, pair Loc1, pair Loc2, const Module * M)

    Defined at line 35 of file llvm/lib/Analysis/AliasAnalysisEvaluator.cpp

  • bool isDereferenceableAndAlignedPointerViaAssumption (const Value * Ptr, Align Alignment, function_ref CheckSize, const DataLayout & DL, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT)

    Defined at line 35 of file llvm/lib/Analysis/Loads.cpp

  • basic_string formatClassOptions (uint32_t IndentLevel, ClassOptions Options, TpiStream * Stream, TypeIndex CurrentTypeIndex)

    Defined at line 35 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • void replaceBranchTerminator (BasicBlock & BB, const BlockSet & BBsToDelete)

    Replaces BB Terminator with one that only contains Chunk BBs

    Defined at line 35 of file llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp

  • void nullDeref ()

    Defined at line 36 of file llvm/unittests/Support/CrashRecoveryTest.cpp

  • PointerUnion getSym (DataRefImpl & Symb)

    Defined at line 36 of file llvm/lib/Object/IRObjectFile.cpp

  • uint64_t * getClearedMemory (unsigned int numWords)

    A utility function for allocating memory, checking for allocation failures,

    and ensuring the contents are zeroed.

    Defined at line 36 of file llvm/lib/Support/APInt.cpp

  • bool shouldReduceThreadLocal (GlobalValue & GV)

    Defined at line 36 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalValues.cpp

  • template <class T>
    void write (bool isBE, void * P, T V)

    Defined at line 36 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • size_t chunk_state_len (const llvm_blake3_chunk_state * self)

    Defined at line 36 of file llvm/lib/Support/BLAKE3/blake3.c

  • bool DefaultAutoDetectFunction (const raw_ostream & OS)

    Defined at line 36 of file llvm/lib/Support/WithColor.cpp

  • void dumpIdxVec (ArrayRef V)

    Defined at line 36 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • Value * getValueFromBundleOpInfo (AssumeInst & Assume, const CallBase::BundleOpInfo & BOI, unsigned int Idx)

    Defined at line 36 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • template <typename MapType, typename EndianType>
    void mapOptionalAs (yaml::IO & IO, const char * Key, EndianType & Val, MapType Default)

    Perform an optional yaml-mapping of an endian-aware type EndianType as some

    other type MapType.

    Defined at line 36 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • bool isLoadCommandWithPayloadString (const LoadCommand & LC)

    Defined at line 36 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • void checkOperandType (const SelectionDAG & DAG, const SDNode * N, unsigned int OpIdx, EVT ExpectedVT)

    Defined at line 36 of file llvm/lib/CodeGen/SelectionDAG/SDNodeInfo.cpp

  • DecodeStatus getInstruction (const MCDisassembler & DisAsm, const MCSubtargetInfo & STI, MCInst & Inst, uint64_t & Size, ArrayRef Bytes, uint64_t Address)

    Defined at line 36 of file llvm/tools/llvm-mc/Disassembler.cpp

  • void initLLVM ()

    Defined at line 36 of file llvm/unittests/CodeGen/GlobalISel/GISelMITest.h

  • void outputSingleQualifier (OutputBuffer & OB, Qualifiers Q)

    Defined at line 36 of file llvm/lib/Demangle/MicrosoftDemangleNodes.cpp

  • void writeWithCommas (raw_ostream & S, ArrayRef Buffer)

    Defined at line 36 of file llvm/lib/Support/NativeFormatting.cpp

  • void reduceConditionals (Oracle & O, ReducerWorkItem & WorkItem, bool Direction)

    Defined at line 36 of file llvm/tools/llvm-reduce/deltas/ReduceUsingSimplifyCFG.cpp

  • Expected metadataRecordType (const XRayFileHeader & Header, uint8_t T)

    Defined at line 36 of file llvm/lib/XRay/FDRRecordProducer.cpp

  • void initializePhysicalRegisterUsageInfoWrapperLegacyPassOnce (PassRegistry & Registry)

    Defined at line 37 of file llvm/lib/CodeGen/RegisterUsageInfo.cpp

  • void incrementGlobal ()

    Defined at line 37 of file llvm/unittests/Support/CrashRecoveryTest.cpp

  • void writeHeader (StringRef Str, raw_ostream & OS, char Kind)

    Defined at line 37 of file llvm/utils/TableGen/InstrDocsEmitter.cpp

  • bool isKnownV5SectionID (uint32_t ID)

    Return true if the section identifier is defined in the DWARFv5 standard.

    Defined at line 37 of file llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp

  • LLVMSectionIteratorRef wrap (const section_iterator * SI)

    Defined at line 37 of file llvm/lib/Object/Object.cpp

  • bool hasAutoInitMetadata (const Instruction & I)

    Defined at line 37 of file llvm/lib/Transforms/Utils/MoveAutoInit.cpp

  • uint16_t fold_64_to_16 (const uint64_t Value)

    Fold a 64-bit integer to a 16-bit one.

    Defined at line 37 of file llvm/lib/CodeGen/MachineBlockHashInfo.cpp

  • CASTestingEnv createOnDisk (int I)

    Defined at line 37 of file llvm/unittests/CAS/CASTestConfig.cpp

  • void SetImpliedBits (FeatureBitset & Bits, const FeatureBitset & Implies, ArrayRef FeatureTable)

    For each feature that is (transitively) implied by this feature, set it.

    Defined at line 37 of file llvm/lib/MC/MCSubtargetInfo.cpp

  • void insertCallBeforeInstruction (Function & Fn, Instruction & Instruction, const char * FunctionName, ArrayRef FunctionArgs)

    Defined at line 37 of file llvm/lib/Transforms/Instrumentation/RealtimeSanitizer.cpp

  • StringRef getFESpelling (Frontend FE)

    Defined at line 37 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • StringRef toUTF8 (UTF32 C, MutableArrayRef Storage)

    Defined at line 37 of file llvm/lib/Support/DJB.cpp

  • const DenseMap<Directive, StringRef> & Expected60 ()

    Defined at line 37 of file llvm/unittests/Frontend/OpenMPDirectiveNameTest.cpp

  • template <typename T>
    Error readInteger (StringRef Buffer, const char * Src, T & Val, Twine Str)

    Defined at line 37 of file llvm/lib/Object/DXContainer.cpp

  • ParseRet tryParseISA (StringRef & MangledName, VFISAKind & ISA)

    Extracts the `

    <isa

    >` information from the mangled string, and

    sets the `ISA` accordingly. If successful, the

    <isa

    > token is removed

    from the input string `MangledName`.

    Defined at line 37 of file llvm/lib/IR/VFABIDemangler.cpp

  • void do_disassemble (const char * triple, const char * features, unsigned char * buf, int siz)

    Defined at line 37 of file llvm/tools/llvm-c-test/disassemble.c

  • uint32_t calculateFileAlignment (const MachOObjectFile & O)

    For compatibility with cctools lipo, a file's alignment is calculated as the

    minimum aligment of all segments. For object files, the file's alignment is

    the maximum alignment of its sections.

    Defined at line 37 of file llvm/lib/Object/MachOUniversalWriter.cpp

  • void check (const remarks::Remark & R, StringRef ExpectedR, optional ExpectedMeta, optional StrTab)

    Defined at line 37 of file llvm/unittests/Remarks/BitstreamRemarksSerializerTest.cpp

  • Value * reduceIntrinsic (Oracle & O, Module & M, IntrinsicInst * II)

    Defined at line 37 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp

  • void prettyPrintSectionSizes (const ObjectFile & Obj, const SectionSizes & Sizes, raw_ostream & OS)

    Defined at line 37 of file llvm/tools/llvm-dwarfdump/SectionSizes.cpp

  • Error tryFilter ()

    Defined at line 37 of file llvm/tools/llvm-remarkutil/RemarkFilter.cpp

  • void compress_pre (uint32_t[16] state, const uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags)

    Defined at line 37 of file llvm/lib/Support/BLAKE3/blake3_portable.c

  • void findLocalExecutorHelper ()

    Defined at line 38 of file llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/RemoteJITUtils.cpp

  • bool isError (Error * E)

    Defined at line 38 of file llvm/lib/Support/DataExtractor.cpp

  • void llvmTrap ()

    Defined at line 38 of file llvm/unittests/Support/CrashRecoveryTest.cpp

  • Error stringErr (const Twine & T)

    Most of the errors produced by this module are inconvertible StringErrors.

    This convenience function lets us return one of those more easily.

    Defined at line 38 of file llvm/lib/Linker/IRMover.cpp

  • unsigned int getMaskElt (unsigned int Mask, unsigned int Elt)

    getMaskElt - Return element N of the specified mask.

    Defined at line 38 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • pair intersect (const Interval & I1, const Interval & I2)

    Defined at line 38 of file llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp

  • LLVMComdatRef LLVMGetComdat (LLVMValueRef V)

    Get the Comdat assigned to the given global object.

    Defined at line 38 of file llvm/lib/IR/Comdat.cpp

  • int makeLLVMModule (LLVMContext & Context, const char * ModuleStr)

    Defined at line 38 of file llvm/unittests/Analysis/LoopNestTest.cpp

  • unsigned int getNextComponentInDiscriminator (unsigned int D)

    Returns the next component stored in discriminator.

    Defined at line 38 of file llvm/include/llvm/Support/Discriminator.h

  • SUnit * getPredClusterSU (const SUnit & SU)

    Defined at line 38 of file llvm/lib/CodeGen/MacroFusion.cpp

  • Value * getRuntimeLoopUnits (IRBuilderBase & B, Value * Len, Value * OpSize, unsigned int OpSizeVal, Value * RTLoopRemainder)

    Defined at line 38 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • unique_ptr makeLLVMModule (LLVMContext & Context, StringRef ModuleStr)

    Defined at line 38 of file llvm/unittests/IR/DominatorTreeTest.cpp

  • ArrayRef getWorksharing ()

    Defined at line 38 of file llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h

  • bool hasOnlyOneCallUse (const Function & F)

    Defined at line 38 of file llvm/tools/llvm-reduce/deltas/ReduceInlineCallSites.cpp

  • AssertionResult ErrorEquals (instrprof_error Expected, Error E)

    Defined at line 38 of file llvm/unittests/ProfileData/InstrProfTest.cpp

  • Constant * getVTableAddressPointOffset (GlobalVariable * VTable, uint32_t AddressPointOffset)

    Returns a constant representing the vtable's address point specified by the

    offset.

    Defined at line 38 of file llvm/unittests/Transforms/Utils/CallPromotionUtilsTest.cpp

  • Expected getCOFFGOTTarget (LinkGraph & G, Block & B)

    Defined at line 38 of file llvm/tools/llvm-jitlink/llvm-jitlink-coff.cpp

  • Error dumpObject (const ObjectFile & Obj, raw_ostream & OS)

    Defined at line 38 of file llvm/tools/obj2yaml/obj2yaml.cpp

  • bool getInlineStackHelper (const InlineInfo & II, uint64_t Addr, std::vector<const InlineInfo *> & InlineStack)

    Defined at line 38 of file llvm/lib/DebugInfo/GSYM/InlineInfo.cpp

  • bool hasSinCosPiStret (const Triple & T)

    Defined at line 38 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • void checkFeatureTree (const Record * Root)

    Defined at line 38 of file llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp

  • void ConnectBlocks (BasicBlock * From, BasicBlock * To)

    Defined at line 38 of file llvm/unittests/IR/CFGBuilder.cpp

  • void printOperand (raw_ostream & OS, const DIDumpOptions & DumpOpts, const CFIProgram & P, const CFIProgram::Instruction & Instr, unsigned int OperandIdx, uint64_t Operand, std::optional<uint64_t> & Address)

    Print

    operand number

    which has value

    Defined at line 38 of file llvm/lib/DebugInfo/DWARF/DWARFCFIPrinter.cpp

  • bool splitGlobal (GlobalVariable & GV)

    Defined at line 38 of file llvm/lib/Transforms/IPO/GlobalSplit.cpp

  • void initializeFuncletLayoutPassOnce (PassRegistry & Registry)

    Defined at line 39 of file llvm/lib/CodeGen/FuncletLayout.cpp

  • void initializeRegAllocPriorityAdvisorAnalysisLegacyPassOnce (PassRegistry & Registry)

    Defined at line 39 of file llvm/lib/CodeGen/RegAllocPriorityAdvisor.cpp

  • Atom formatAtom (unsigned int Atom)

    Defined at line 39 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  • void incrementGlobalWithParam (void * )

    Defined at line 39 of file llvm/unittests/Support/CrashRecoveryTest.cpp

  • int LLVMWriteBitcodeToFileHandle (LLVMModuleRef M, int Handle)

    Deprecated for LLVMWriteBitcodeToFD. Writes a module to an open file

    descriptor. Returns 0 on success. Closes the Handle.

    Defined at line 39 of file llvm/lib/Bitcode/Writer/BitWriter.cpp

  • int & getAvailableVals (void * AV)

    Defined at line 39 of file llvm/lib/CodeGen/MachineSSAUpdater.cpp

  • uint64_t CountFromData (uint64_t Data, char SizeofPtr)

    Defined at line 39 of file llvm/tools/sanstats/sanstats.cpp

  • void printColumnHeader (raw_ostream & OS, size_t Length)

    Defined at line 39 of file llvm/tools/llvm-objdump/DXContainerDump.cpp

  • bool isReallyValidReturnType (Type * Ty)

    Return true if it's legal to replace a function return type to use

    Defined at line 39 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • void initializeLiveRegMatrixWrapperLegacyPassOnce (PassRegistry & Registry)

    Defined at line 39 of file llvm/lib/CodeGen/LiveRegMatrix.cpp

  • void r0 (uint32_t & A, uint32_t & B, uint32_t & C, uint32_t & D, uint32_t & E, int I, uint32_t * Buf)

    Defined at line 39 of file llvm/lib/Support/SHA1.cpp

  • void SetStrings (std::string & GStr, std::string & LStr)

    Defined at line 39 of file llvm/unittests/Support/DynamicLibrary/PipSqueak.cpp

  • void printEnums (const RecordKeeper & Records, raw_ostream & OS)

    Defined at line 39 of file llvm/utils/TableGen/Basic/TableGen.cpp

  • BasicBlock * getBasicBlockByName (Function & F, StringRef Name)

    Defined at line 39 of file llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp

  • void BM_GetIntrinsicForClangBuiltinHexagonFirst (benchmark::State & state)

    Defined at line 39 of file llvm/benchmarks/GetIntrinsicForClangBuiltin.cpp

  • Value * getNewICmpValue (unsigned int Code, bool Sign, Value * LHS, Value * RHS, InstCombiner::BuilderTy & Builder)

    This is the complement of getICmpCode, which turns an opcode and two

    operands into either a constant true or false, or a brand new ICmp

    instruction. The sign is passed in to determine which kind of predicate to

    use in the new icmp instruction.

    Defined at line 39 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • int parseIR (LLVMContext & C, const char * IR)

    Defined at line 39 of file llvm/unittests/Analysis/IVDescriptorsTest.cpp

  • const MCExpr * buildSymbolDiff (MCObjectStreamer * MCOS, const MCSymbol * A, const MCSymbol * B)

    Defined at line 39 of file llvm/lib/MC/MCPseudoProbe.cpp

  • unsigned int getSymbolSectionID (const ObjectFile & O, SymbolRef Sym)

    Defined at line 39 of file llvm/lib/Object/SymbolSize.cpp

  • Type getType (const Symbol * Sym)

    Defined at line 39 of file llvm/lib/Object/TapiFile.cpp

  • basic_string findLocalExecutor (const char * HostArgv0)

    Find the default exectuable on disk and create a JITLinkExecutor for it.

    Defined at line 39 of file llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/RemoteJITUtils.cpp

  • BranchCoverageInfo sumBranchExpansions (const CoverageMapping & CM, ArrayRef Expansions)

    Defined at line 39 of file llvm/tools/llvm-cov/CoverageSummaryInfo.cpp

  • void dumpApplePropertyAttribute (raw_ostream & OS, uint64_t Val)

    Defined at line 39 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • template <class Fn>
    bool CheckStdCmpRequirements ()

    https://llvm.org/PR105169

    Verify that we won't accidently specialize std::less and std::equal_to in a

    wrong way.

    C++17 [namespace.std]/2, C++20/23 [namespace.std]/5:

    A program may explicitly instantiate a template defined in the standard

    library only if the declaration

    - depends on the name of a user-defined type and

    - the instantiation meets the standard library requirements for the

    original template.

    Defined at line 39 of file llvm/unittests/CodeGen/TypeTraitsTest.cpp

  • bool runOnBasicBlock (BasicBlock & BB)

    Defined at line 39 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp

  • basic_string updateTripleOSVersion (basic_string TargetTripleString)

    Defined at line 39 of file llvm/lib/TargetParser/Unix/Host.inc

  • void printModuleDebugInfo (raw_ostream & O, const Module * M, const DebugInfoFinder & Finder)

    Defined at line 39 of file llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp

  • Value * EvaluateInDifferentTypeImpl (Value * V, Type * Ty, bool isSigned, InstCombinerImpl & IC, EvaluatedMap & Processed)

    Defined at line 39 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • void initializePostDominatorTreeWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 40 of file llvm/lib/Analysis/PostDominators.cpp

  • void LLVMLinkInMCJIT ()

    Empty function used to force the linker to link MCJIT.

    Has no effect when called on a pre-built library (dylib interface).

    Defined at line 40 of file llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp

  • void writeDDGToDotFile (DataDependenceGraph & G, bool DOnly)

    Defined at line 39 of file llvm/lib/Analysis/DDGPrinter.cpp

  • int getPosixProtectionFlags (unsigned int Flags)

    Defined at line 39 of file llvm/lib/Support/Unix/Memory.inc

  • bool skipUnit (const DICompileUnit * CU)

    Defined at line 40 of file llvm/lib/CodeGen/LexicalScopes.cpp

  • bool shouldReduceLinkage (GlobalValue & GV)

    Defined at line 40 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalValues.cpp

  • SmallVector parseFormatString (StringRef Fmt)

    Helper to parse format string with no validation.

    Defined at line 40 of file llvm/unittests/Support/FormatVariadicTest.cpp

  • bool isIntegerOrPtr (MVT VT)

    Defined at line 40 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool isItaniumEncoding (basic_string_view S)

    Defined at line 40 of file llvm/lib/Demangle/Demangle.cpp

  • Align clampStackAlignment (bool ShouldClamp, Align Alignment, Align StackAlignment)

    Clamp the alignment if requested and emit a warning.

    Defined at line 40 of file llvm/lib/CodeGen/MachineFrameInfo.cpp

  • uint8_t * roundTripAllocateDataSection (void * object, uintptr_t size, unsigned int alignment, unsigned int sectionID, const char * sectionName, LLVMBool isReadOnly)

    Defined at line 40 of file llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp

  • int helpMain (int argc, const char *[] argv)

    Top level help.

    Defined at line 40 of file llvm/tools/llvm-cov/llvm-cov.cpp

  •  llvm_orc_rt_alt_UnwindInfoManager_deregister (const char * ArgData, size_t ArgSize)

    Defined at line 40 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp

  • uint64_t getCUAbbrev (StringRef Abbrev, uint64_t AbbrCode)

    Defined at line 40 of file llvm/lib/DWP/DWP.cpp

  • Expected getMachOGOTTarget (LinkGraph & G, Block & B)

    Defined at line 40 of file llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp

  • void writeMCFGToDotFile (MachineFunction & MF)

    Defined at line 40 of file llvm/lib/CodeGen/MachineCFGPrinter.cpp

  • void diffGlobal (DifferenceEngine & Engine, Module & L, Module & R, StringRef Name)

    Defined at line 40 of file llvm/tools/llvm-diff/llvm-diff.cpp

  • unsigned int singleLetterExtensionRank (char Ext)

    Get the rank for single-letter extension, lower value meaning higher

    priority.

    Defined at line 40 of file llvm/lib/Support/RISCVISAUtils.cpp

  • uint32_t getEncodedIntegerLength (ArrayRef Data)

    Defined at line 40 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • void addVariantDeclaration (CallInst & CI, const ElementCount & VF, const VecDesc * VD)

    A helper function that adds the vector variant declaration for vectorizing

    the CallInst

    with a vectorization factor of

    lanes. For each

    mapping, TLI provides a VABI prefix, which contains all information required

    to create vector function declaration.

    Defined at line 40 of file llvm/lib/Transforms/Utils/InjectTLIMappings.cpp

  • bool optimizeSQRT (CallInst * Call, Function * CalledFunc, BasicBlock & CurrBB, Function::iterator & BB, const TargetTransformInfo * TTI, DomTreeUpdater * DTU, OptimizationRemarkEmitter * ORE)

    Defined at line 40 of file llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp

  • void initializeLowerInvokeLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 41 of file llvm/lib/Transforms/Utils/LowerInvoke.cpp

  • void SetValue (Value * V, GenericValue Val, ExecutionContext & SF)

    ===----------------------------------------------------------------------===//

    Various Helper Functions

    ===----------------------------------------------------------------------===//

    Defined at line 41 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • AvailableValsTy & getAvailableVals (void * AV)

    Defined at line 41 of file llvm/lib/Transforms/Utils/SSAUpdater.cpp

  • bool CompareNames (const LayoutPtr & S1, const LayoutPtr & S2)

    Defined at line 41 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • TypeLeafKind getTypeLeafKind (ContinuationRecordKind CK)

    Defined at line 41 of file llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp

  • unsigned int * getHashTable (StringMapEntryBase ** TheTable, unsigned int NumBuckets)

    Defined at line 41 of file llvm/lib/Support/StringMap.cpp

  • basic_string getMatchOpcodeForImmPredicate (const TreePredicateFn & Predicate)

    Defined at line 41 of file llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp

  • void addRegionIntoQueue (Region & R, std::deque<Region *> & RQ)

    Recurse through all subregions and all regions into RQ.

    Defined at line 41 of file llvm/lib/Analysis/RegionPass.cpp

  • void reportError (Twine Message)

    Defined at line 41 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • void write32AArch64Addr (void * L, uint64_t Imm)

    Defined at line 41 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • void errorUnsupported (SelectionDAG & DAG, const SDLoc & dl, const char * Msg)

    Call this when the user attempts to do something unsupported, like

    returning a double without SSE2 enabled on x86_64. This is not fatal, unlike

    report_fatal_error, so calling code should attempt to recover without

    crashing.

    Defined at line 41 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • template <class T>
    T FuncPtr (void * Ptr)

    Defined at line 41 of file llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp

  • int getPrecedence (Opcode Op)

    Defined at line 41 of file llvm/lib/MC/MCExpr.cpp

  • void error (Error EC)

    Defined at line 41 of file llvm/tools/llvm-debuginfo-analyzer/llvm-debuginfo-analyzer.cpp

  • size_t chunk_state_fill_buf (llvm_blake3_chunk_state * self, const uint8_t * input, size_t input_len)

    Defined at line 41 of file llvm/lib/Support/BLAKE3/blake3.c

  • bool valueEscapes (const Instruction & Inst)

    Defined at line 41 of file llvm/lib/Transforms/Scalar/Reg2Mem.cpp

  • Value * getBoolVecFromMask (Value * Mask, const DataLayout & DL)

    Convert the x86 XMM integer vector mask to a vector of bools based on

    each element's most significant bit (the sign bit).

    Defined at line 41 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • int createOptMutator ()

    Defined at line 41 of file llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp

  • void getPhiRegs (MachineInstr & Phi, MachineBasicBlock * Loop, Register & InitVal, Register & LoopVal)

    Return the register values for the operands of a Phi instruction.

    This function assume the instruction is a Phi.

    Defined at line 41 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • MVT getOptimalRepType (const X86Subtarget & Subtarget, Align Alignment)

    Returns the best type to use with repmovs/repstos depending on alignment.

    Defined at line 41 of file llvm/lib/Target/X86/X86SelectionDAGInfo.cpp

  • bool parseInt (StringRef & input, unsigned int & value)

    Defined at line 41 of file llvm/lib/Support/VersionTuple.cpp

  • basic_string escapeForRST (StringRef Str)

    Defined at line 41 of file llvm/utils/TableGen/InstrDocsEmitter.cpp

  • ThreadSafeModule createDemoModule ()

    Defined at line 41 of file llvm/examples/HowToUseLLJIT/HowToUseLLJIT.cpp

  • LLVMValueRef build_from_tokens (char ** tokens, int ntokens, LLVMBuilderRef builder, LLVMValueRef param)

    Defined at line 41 of file llvm/tools/llvm-c-test/calc.c

  • uint64_t * getMemory (unsigned int numWords)

    A utility function for allocating memory and checking for allocation

    failure. The content is not zeroed.

    Defined at line 42 of file llvm/lib/Support/APInt.cpp

  • int64_t getInt (const Record * R, StringRef Field)

    Defined at line 42 of file llvm/utils/TableGen/SearchableTableEmitter.cpp

  • unsigned int setMaskElt (unsigned int Mask, unsigned int Elt, unsigned int NewVal)

    Defined at line 42 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • template <typename T>
    void writeInteger (T Integer, raw_ostream & OS, bool IsLittleEndian)

    Defined at line 42 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • uint32_t getTypeLength (const PDBSymbol & Symbol)

    Defined at line 42 of file llvm/lib/DebugInfo/PDB/UDTLayout.cpp

  • bool consumeFront (std::string_view & S, char C)

    Defined at line 42 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • bool containsUndefs (const SCEV * S)

    Return true when S contains at least an undef value.

    Defined at line 42 of file llvm/lib/Analysis/Delinearization.cpp

  • void initializeIVUsersWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 42 of file llvm/lib/Analysis/IVUsers.cpp

  • const MachineFunction * getMFIfAvailable (const MachineOperand & MO)

    Defined at line 42 of file llvm/lib/CodeGen/MachineOperand.cpp

  • std::string & prepareParamName (std::string & Name)

    Defined at line 42 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • Expected toBinary (SmallVectorImpl<char> & Storage, StringRef Yaml)

    ELF Object creation

    Defined at line 42 of file llvm/unittests/Object/OffloadingBundleTest.cpp

  • Expected getELFGOTTarget (LinkGraph & G, Block & B)

    Defined at line 42 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp

  • Expected parseStreamSpec (StringRef Str)

    Defined at line 42 of file llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp

  • void completeEphemeralValues (SmallPtrSetImpl<const Value *> & Visited, SmallVectorImpl<const Value *> & Worklist, SmallPtrSetImpl<const Value *> & EphValues)

    Defined at line 42 of file llvm/lib/Analysis/CodeMetrics.cpp

  • void runImpl (Function & F, const TargetLibraryInfo & TLI)

    Defined at line 42 of file llvm/lib/Transforms/Scalar/AnnotationRemarks.cpp

  • void replaceFunctionCalls (Function & OldF, Function & NewF, const std::set<int> & ArgIndexesToKeep)

    Goes over OldF calls and replaces them with a call to NewF

    Defined at line 42 of file llvm/tools/llvm-reduce/deltas/ReduceArguments.cpp

  • bool simplifyLoopInst (Loop & L, DominatorTree & DT, LoopInfo & LI, AssumptionCache & AC, const TargetLibraryInfo & TLI, MemorySSAUpdater * MSSAU)

    Defined at line 42 of file llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp

  • bool isFloatingPoint (MVT VT)

    Defined at line 43 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool isCalleeOperand (const CallBase * CI, unsigned int OpIdx)

    Returns true if the

    operand of

    is the callee operand.

    Defined at line 43 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • symbol_iterator * unwrap (LLVMSymbolIteratorRef SI)

    Defined at line 43 of file llvm/lib/Object/Object.cpp

  • bool shouldSkipRemark (bool UseDebugLoc, Remark & Remark)

    Defined at line 43 of file llvm/tools/llvm-remarkutil/RemarkCount.cpp

  • Error malformedError (Twine Msg)

    Defined at line 43 of file llvm/lib/Object/Archive.cpp

  • int makeLLVMModule (LLVMContext & Context, const char * ModuleStr)

    Defined at line 43 of file llvm/unittests/Analysis/DDGTest.cpp

  • raw_ostream & writeCstring (raw_ostream & OS, StringRef Str)

    Defined at line 43 of file llvm/utils/TableGen/OptionParserEmitter.cpp

  • LLVMMemoryBufferRef LLVMWriteBitcodeToMemoryBuffer (LLVMModuleRef M)

    Writes a module to a new memory buffer and returns it.

    Defined at line 43 of file llvm/lib/Bitcode/Writer/BitWriter.cpp

  • template <typename T>
    Expected getHashForUdt (const CVType & Rec)

    Defined at line 43 of file llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp

  • void getSimilarities (Module & M, std::vector<std::vector<IRSimilarityCandidate>> & SimilarityCandidates)

    Defined at line 43 of file llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp

  • void check (Format InputFormat, StringRef Input, Format OutputFormat, StringRef ExpectedOutput, optional KeepAllRemarks)

    Defined at line 43 of file llvm/unittests/Remarks/RemarksLinkingTest.cpp

  • uint64_t ReadLE (char Size, const char * Begin, const char * End)

    Defined at line 43 of file llvm/tools/sanstats/sanstats.cpp

  • optional writeToAlloca (const Instruction & I)

    Defined at line 43 of file llvm/lib/Transforms/Utils/MoveAutoInit.cpp

  • template <uint8_t Kind, class... Values>
    Error writeMetadata (support::endian::Writer & OS, Values &&... Ds)

    Defined at line 43 of file llvm/lib/XRay/FDRTraceWriter.cpp

  • unsigned int foldConstantCastPair (unsigned int opc, ConstantExpr * Op, Type * DstTy)

    This function determines which opcode to use to fold two constant cast

    expressions together. It uses CastInst::isEliminableCastPair to determine

    the opcode. Consequently its just a wrapper around that function.

    Determine if it is valid to fold a cast of a cast

    Defined at line 43 of file llvm/lib/IR/ConstantFold.cpp

  • optional findInlineeByTypeIndex (TypeIndex Id, ModuleDebugStreamRef & ModS)

    Defined at line 43 of file llvm/lib/DebugInfo/PDB/Native/NativeInlineSiteSymbol.cpp

  • bool ShrinkDemandedConstant (Instruction * I, unsigned int OpNo, const APInt & Demanded)

    Check to see if the specified operand of the specified instruction is a

    constant integer. If so, check to see if there are any bits set in the

    constant that are not demanded. If so, shrink the constant and return true.

    Defined at line 43 of file llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp

  • Error visitMemberRecord (CVMemberRecord & Record, TypeVisitorCallbacks & Callbacks)

    Defined at line 43 of file llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp

  • basic_string getCGDataErrString (cgdata_error Err, const std::string & ErrMsg)

    Defined at line 43 of file llvm/lib/CGData/CodeGenData.cpp

  • Expected<ResultOperand> matchSimpleOperand (const Init * Arg, const StringInit * ArgName, const Record * Op, const CodeGenTarget & T, ArrayRef<SMLoc> Loc)

    Defined at line 43 of file llvm/utils/TableGen/Common/CodeGenInstAlias.cpp

  • void initializeUnpackMachineBundlesPassOnce (PassRegistry & Registry)

    Defined at line 44 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • bool isVector (MVT VT)

    Defined at line 44 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool versionIsSupported (uint16_t Version)

    Defined at line 44 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp

  • TargetMachine * unwrap (LLVMTargetMachineRef P)

    Defined at line 44 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • uint64_t getOffsetOfLSDA (const UnwindInfo & UI)

    Defined at line 44 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • Metadata * getKeyValMD (LLVMContext & Context, const char * Key, const char * Val)

    Return an MDTuple with two elements. The first element is a string Key and

    the second is a string Value.

    Defined at line 44 of file llvm/lib/IR/ProfileSummary.cpp

  • void fatal_exit ()

    Run file cleanup handlers and then exit fatally (with non-zero exit code).

    Defined at line 44 of file llvm/lib/TableGen/Error.cpp

  • bool isValidIDChar (char C, bool First)

    Returns true if `C` is a valid character in an identifier. If `First` is

    true, returns true if `C` is a valid first character of an identifier,

    else returns true if `C` is a valid non-first character of an identifier.

    Identifiers match the following regular expression:

    [a-zA-Z_][0-9a-zA-Z_]*

    Defined at line 44 of file llvm/lib/TableGen/TGLexer.cpp

  • void linkComponents ()

    Defined at line 44 of file llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp

  • void testParseError (ArrayRef bytes, const char * msg)

    Defined at line 44 of file llvm/unittests/Support/ARMAttributeParser.cpp

  • Instruction * getFirstNonAllocaInTheEntryBlock (Function * F)

    Defined at line 44 of file llvm/lib/Transforms/Coroutines/CoroAnnotationElide.cpp

  • basic_string convertToString (double d, unsigned int Prec, unsigned int Pad, bool Tr)

    Defined at line 44 of file llvm/unittests/ADT/APFloatTest.cpp

  • Instruction * getInstructionByName (Function & F, StringRef Name)

    Defined at line 44 of file llvm/unittests/Analysis/LoopNestTest.cpp

  • void printBinary (const OffloadBinary & OB, uint64_t Index)

    Defined at line 44 of file llvm/tools/llvm-objdump/OffloadDump.cpp

  • Table makeTable (uint32_t Index, const wasm::WasmTableType & Type)

    Defined at line 44 of file llvm/tools/obj2yaml/wasm2yaml.cpp

  • optional extractProbeFromDiscriminator (const Instruction & Inst)

    Defined at line 44 of file llvm/lib/IR/PseudoProbe.cpp

  • void turnToExplicitForm (CallInst * Guard, Function * DeoptIntrinsic)

    Defined at line 44 of file llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp

  • bool writeProgramToFileAux (ToolOutputFile & Out, const Module & M)

    This writes the current "Program" to the named bitcode file. If an error

    occurs, true is returned.

    Defined at line 44 of file llvm/tools/bugpoint/OptimizerDriver.cpp

  • optional getPositionInModule (const Instruction * I, const DenseMap<Instruction *, unsigned int> & LLVMInstNum)

    Retrieve the unique number

    was mapped to in parseBitcodeFile.

    Parameters

    I - The Instruction to find the instruction number for.
    LLVMInstNum - The mapping of Instructions to their location in the module represented by an unsigned integer.

    Defined at line 44 of file llvm/tools/llvm-sim/llvm-sim.cpp

  • Expected parseExampleModule (StringRef Source, StringRef Name)

    Defined at line 44 of file llvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/../ExampleModules.h

  • ilist_iterator_w_bits moveBeforeInsertPoint (ilist_iterator_w_bits I, ilist_iterator_w_bits IP)

    Moves I before IP. Returns new insert point.

    Defined at line 44 of file llvm/lib/Transforms/Utils/Instrumentation.cpp

  • void printColumnHeaders (raw_ostream & OS, ArrayRef Lengths)

    Defined at line 44 of file llvm/tools/llvm-objdump/DXContainerDump.cpp

  • void reduceAtomicSyncScopesInFunction (Oracle & O, Function & F)

    Defined at line 44 of file llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp

  • std::pair<bool, bool> runImpl (MachineFunction & MF)

    Defined at line 44 of file llvm/lib/CodeGen/FinalizeISel.cpp

  • optional foldOperationIfPossible (uint64_t Const1, uint64_t Const2, LocationAtom Operator)

    Try to fold

    and

    by applying

    and returning

    the result, if there is an overflow, return a std::nullopt.

    Defined at line 44 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • void clearAssumptionsOfUsers (Instruction * I, DemandedBits & DB)

    If an instruction is trivialized (dead), then the chain of users of that

    instruction may need to be cleared of assumptions that can no longer be

    guaranteed correct.

    Defined at line 44 of file llvm/lib/Transforms/Scalar/BDCE.cpp

  • void initializeMIRAddFSDiscriminatorsPassOnce (PassRegistry & Registry)

    Defined at line 45 of file llvm/lib/CodeGen/MIRFSDiscriminator.cpp

  • void initializeMachineBlockHashInfoPassOnce (PassRegistry & Registry)

    Defined at line 45 of file llvm/lib/CodeGen/MachineBlockHashInfo.cpp

  • void initializeReachingDefInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 45 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp

  • bool isScalar (MVT VT)

    Defined at line 45 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • unsigned int encodeComponent (unsigned int C)

    Defined at line 45 of file llvm/include/llvm/Support/Discriminator.h

  • LLVMOrcSymbolStringPoolEntryRef wrap (SymbolStringPoolEntryUnsafe E)

    Defined at line 45 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • template <typename... Ts>
    auto createStringErrorV (Ts &&... Args)

    note: createStringError has an overload that takes a format string,

    but it uses llvm::format instead of llvm::formatv, which does

    not work with json::Value. This is a helper function to use

    llvm::formatv with createStringError.

    Defined at line 45 of file llvm/lib/Frontend/Offloading/PropertySet.cpp

  • template <class ELFT>
    unique_ptr createDumper (const ELFObjectFile<ELFT> & Obj)

    Defined at line 45 of file llvm/tools/llvm-objdump/ELFDump.cpp

  • bool CompareSizes (const LayoutPtr & S1, const LayoutPtr & S2)

    Defined at line 45 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • void writeMalformedULEB128Value (raw_ostream & OS)

    Defined at line 45 of file llvm/unittests/DebugInfo/DWARF/DWARFDebugAbbrevTest.cpp

  • void TestOrder (std::vector<std::string> & V)

    Defined at line 45 of file llvm/unittests/Support/DynamicLibrary/PipSqueak.cpp

  • uint64_t getStableHash (const AllocTokenMetadata & Metadata, uint64_t MaxTokens)

    Defined at line 45 of file llvm/lib/Support/AllocToken.cpp

  • void r1 (uint32_t & A, uint32_t & B, uint32_t & C, uint32_t & D, uint32_t & E, int I, uint32_t * Buf)

    Defined at line 45 of file llvm/lib/Support/SHA1.cpp

  • bool isNumberChar (char C)

    Defined at line 45 of file llvm/lib/Support/FileUtilities.cpp

  • void FindUsedValues (GlobalVariable * LLVMUsed, SmallPtrSetImpl<const GlobalValue *> & UsedValues)

    Find values that are marked as llvm.used.

    Defined at line 45 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp

  • void printSets (const RecordKeeper & Records, raw_ostream & OS)

    Defined at line 45 of file llvm/utils/TableGen/Basic/TableGen.cpp

  • bool shouldReduceOperand (Use & Op)

    Defined at line 45 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsSkip.cpp

  • void initializeRABasicPassOnce (PassRegistry & Registry)

    Defined at line 45 of file llvm/lib/CodeGen/RegAllocBasic.cpp

  • unsigned int getResultPatternCost (const TreePatternNode & P, const CodeGenDAGPatterns & CGP)

    Compute the number of instructions for this pattern.

    This is a temporary hack. We should really include the instruction

    latencies in this calculation.

    Defined at line 45 of file llvm/utils/TableGen/DAGISelEmitter.cpp

  • vector getDominatees (BasicBlock * BB)

    Return a vector of Blocks that is dominated by this block, excluding current

    block

    Defined at line 45 of file llvm/lib/FuzzMutate/RandomIRBuilder.cpp

  • InstrProfKind getProfileKindFromVersion (uint64_t Version)

    Extracts the variant information from the top 32 bits in the version and

    returns an enum specifying the variants present.

    Defined at line 45 of file llvm/lib/ProfileData/InstrProfReader.cpp

  • bool runImpl (Function & F)

    Defined at line 45 of file llvm/lib/Transforms/Utils/LowerInvoke.cpp

  • bool isPossibleIndirectCallTarget (const Function * F)

    Returns true if this function's address is escaped in a way that might make

    it an indirect call target. Function::hasAddressTaken gives different

    results when a function is called directly with a function prototype

    mismatch, which requires a cast.

    Defined at line 45 of file llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp

  • int gettok ()

    gettok - Return the next token from standard input.

    Defined at line 45 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void rewriteFuncWithReturnType (Function & OldF, Value * NewRetValue)

    Insert a ret inst after

    which returns the value it produces.

    Defined at line 45 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • bool isOnlyCopiedFromConstantMemory (AAResults * AA, AllocaInst * V, MemTransferInst *& TheCopy, SmallVectorImpl<Instruction *> & ToDelete)

    isOnlyCopiedFromConstantMemory - Recursively walk the uses of a (derived)

    pointer to an alloca. Ignore any reads of the pointer, return false if we

    see any stores or other unknown uses. If we see pointer arithmetic, keep

    track of whether it moves the pointer (with IsOffset) but otherwise traverse

    the uses. If we see a memcpy/memmove that targets an unoffseted pointer to

    the alloca, and if the source pointer is a pointer to a constant memory

    location, we can optimize this.

    Defined at line 45 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • void initializeMachineSanitizerBinaryMetadataLegacyPassOnce (PassRegistry & Registry)

    Defined at line 46 of file llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp

  • bool isRustEncoding (basic_string_view S)

    Defined at line 46 of file llvm/lib/Demangle/Demangle.cpp

  • void initializeBarrierNoopPassOnce (PassRegistry & Registry)

    Defined at line 46 of file llvm/lib/Transforms/IPO/BarrierNoopPass.cpp

  • basic_string gtest_OnDiskCASCASTest_EvalGenerateName_ (const ::testing::TestParamInfo<CASTest::ParamType> & info)

    Defined at line 46 of file llvm/unittests/CAS/CASTestConfig.cpp

  • ParamGenerator gtest_OnDiskCASCASTest_EvalGenerator_ ()

    Defined at line 46 of file llvm/unittests/CAS/CASTestConfig.cpp

  • unsigned int AdjustStackOffset (unsigned int Offset, unsigned int Size, Align Alignment)

    Defined at line 46 of file llvm/lib/CodeGen/SafeStackLayout.cpp

  • template <typename HasherTAndEndianness, typename... Ts>
    typename HashBuilder<HasherTAndEndianness>::template HashResultTy<> hashWithBuilder (const Ts &... Args)

    Defined at line 46 of file llvm/unittests/Support/HashBuilderTest.cpp

  • Type * checkType (Type * Ty)

    ===----------------------------------------------------------------------===//

    Value Class

    ===----------------------------------------------------------------------===//

    Defined at line 46 of file llvm/lib/IR/Value.cpp

  • Value * lowerIsConstantIntrinsic (IntrinsicInst * II)

    Defined at line 46 of file llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp

  • bool checkSize (MemoryBufferRef M, std::error_code & EC, uint64_t Size)

    Returns false if size is greater than the buffer size. And sets ec.

    Defined at line 46 of file llvm/lib/Object/COFFObjectFile.cpp

  • StringRef getPayloadString (const LoadCommand & LC)

    Defined at line 46 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • optional getCFARegOffsetInfo (const dwarf::UnwindRow & UnwindRow)

    Defined at line 46 of file llvm/lib/DWARFCFIChecker/DWARFCFIAnalysis.cpp

  • bool isUsedOutsideOfDefiningBlock (const Instruction * I)

    isUsedOutsideOfDefiningBlock - Return true if this instruction is used by

    PHI nodes or outside of the basic block that defines it, or used by a

    switch or atomic instruction, which may expand to multiple basic blocks.

    Defined at line 46 of file llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp

  • bool addWithOverflow (APInt & Result, const APInt & In1, const APInt & In2, bool IsSigned)

    Compute Result = In1+In2, returning true if the result overflowed for this

    type.

    Defined at line 46 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void BM_FormatVariadic (benchmark::State & state)

    Benchmark formatv() for a variety of format strings and 1-5 replacements.

    Defined at line 46 of file llvm/benchmarks/FormatVariadicBM.cpp

  • pair parseDebugType (StringRef DbgType)

    Parse a debug type string into a pair of the debug type and the debug level.

    The expected format is "type[:level]", where the level is an optional

    integer.

    Defined at line 46 of file llvm/lib/Support/Debug.cpp

  • bool iterativelyFlattenCFG (Function & F, AliasAnalysis * AA)

    iterativelyFlattenCFG - Call FlattenCFG on all the blocks in the function,

    iterating until no more changes are made.

    Defined at line 46 of file llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp

  • void * addSection (size_t Size, LLVMBool IsCode)

    Defined at line 46 of file llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c

  • void appendJITDebugDescriptor (const char * ObjAddr, size_t Size)

    Register debug object, return error message or null for success.

    Defined at line 46 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.cpp

  • bool printInsts (const MCDisassembler & DisAsm, const ByteArrayTy & Bytes, SourceMgr & SM, MCStreamer & Streamer, bool InAtomicBlock, const MCSubtargetInfo & STI, unsigned int NumBenchmarkRuns)

    Defined at line 46 of file llvm/tools/llvm-mc/Disassembler.cpp

  • void initializeSlotIndexesWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 47 of file llvm/lib/CodeGen/SlotIndexes.cpp

  • LLVMTargetMachineOptions * unwrap (LLVMTargetMachineOptionsRef P)

    Defined at line 47 of file llvm/lib/Target/TargetMachineC.cpp

  • LLVMTargetMachineOptionsRef wrap (const LLVMTargetMachineOptions * P)

    Defined at line 47 of file llvm/lib/Target/TargetMachineC.cpp

  • void writeTimestampFile (StringRef TimestampFile)

    Write a new timestamp file with the given path. This is used for the pruning

    interval option.

    Defined at line 47 of file llvm/lib/Support/CachePruning.cpp

  • ArrayRef hash_of (ArrayRef Hashes, TypeIndex TI)

    Defined at line 47 of file llvm/unittests/DebugInfo/CodeView/TypeHashingTest.cpp

  • LLVMSymbolIteratorRef wrap (const symbol_iterator * SI)

    Defined at line 47 of file llvm/lib/Object/Object.cpp

  • void emitErrorMsg (MachineFunction & MF)

    Defined at line 47 of file llvm/lib/Target/X86/X86PreTileConfig.cpp

  • ArrayRef getWorksharingLoop ()

    Defined at line 47 of file llvm/include/llvm/Frontend/OpenMP/ConstructDecompositionT.h

  • uint64_t getConstMetaVal (const MachineInstr & MI, unsigned int Idx)

    Defined at line 47 of file llvm/lib/CodeGen/StackMaps.cpp

  • bool OnlyUsedBy (Value * V, Value * Usr)

    OnlyUsedBy - Return true if V is only used by Usr.

    Defined at line 47 of file llvm/lib/Transforms/IPO/StripSymbols.cpp

  • template <typename T>
    Expected<const T &> getDataSliceAs (ArrayRef Data, uint64_t Offset)

    Defined at line 47 of file llvm/lib/Object/SFrameParser.cpp

  • void reportError (Error E)

    Defined at line 47 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • optional getKnownEncoding (StringRef Name)

    Maps the encoding name to enum constant if possible.

    Defined at line 47 of file llvm/lib/Support/TextEncoding.cpp

  • bool hasMatchesExactlyAttributes (AssumeInst * Assume, Value * WasOn, StringRef AttrToMatch)

    Defined at line 47 of file llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp

  • vector readSymbolsFromFile (StringRef InputFile)

    Defined at line 47 of file llvm/benchmarks/RuntimeLibcalls.cpp

  • unsigned int getDigit (char cdigit, uint8_t radix)

    A utility function that converts a character to a digit.

    Defined at line 47 of file llvm/lib/Support/APInt.cpp

  • Function * globalInitUsesExternalBA (GlobalVariable * GV)

    Defined at line 47 of file llvm/tools/bugpoint/ExtractFunction.cpp

  • bool canParameterizeCallOperand (const CallBase * CI, unsigned int OpIdx)

    Defined at line 47 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • Value * simplifyValueKnownNonZero (Value * V, InstCombinerImpl & IC, Instruction & CxtI)

    The specific integer value is used in a context where it is known to be

    non-zero. If this allows us to simplify the computation, do so and return

    the new operand, otherwise return null.

    Defined at line 47 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • vector constructTriples (MachOObjectFile * Obj, Architecture ArchT)

    Defined at line 47 of file llvm/lib/TextAPI/BinaryReader/DylibReader.cpp

  • void initializeGISelValueTrackingAnalysisLegacyPassOnce (PassRegistry & Registry)

    Defined at line 48 of file llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp

  • bool isDLangEncoding (basic_string_view S)

    Defined at line 48 of file llvm/lib/Demangle/Demangle.cpp

  • LLVMPassBuilderOptions * unwrap (LLVMPassBuilderOptionsRef P)

    Defined at line 48 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • LLVMPassBuilderOptionsRef wrap (const LLVMPassBuilderOptions * P)

    Defined at line 48 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • bool isAlwaysLive (Instruction * I)

    Defined at line 48 of file llvm/lib/Analysis/DemandedBits.cpp

  • Section constructSection (const MachO::section & Sec, uint32_t Index)

    Defined at line 48 of file llvm/lib/ObjCopy/MachO/MachOReader.cpp

  • void checkError (basic_string ExpectedMsg, Error Err)

    Defined at line 48 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • MergeOptions getMaxWidenStepsOpts ()

    Returns MergeOptions with MaxWidenSteps set to MaxNumRangeExtensions.

    Defined at line 48 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp

  • bool isOne (Use & Op)

    Defined at line 48 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • bool isValidMask (unsigned short Mask)

    Reject elements where the values are 9-15.

    Defined at line 48 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • void copyLinkageVisibility (Module & M, const GlobalVariable * from, GlobalVariable * to)

    Defined at line 48 of file llvm/lib/CodeGen/LowerEmuTLS.cpp

  • template <typename Predicate>
    bool berase_if (MachineValueTypeSet & S, Predicate P)

    Defined at line 48 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool shouldNotRemoveInstruction (const TargetInstrInfo & TII, const MachineInstr & MI)

    Defined at line 48 of file llvm/tools/llvm-reduce/deltas/ReduceInstructionsMIR.cpp

  • Error writeVariableSizedInteger (uint64_t Integer, size_t Size, raw_ostream & OS, bool IsLittleEndian)

    Defined at line 48 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • bool isFPIntrinsic (const MachineRegisterInfo & MRI, const MachineInstr & MI)

    Defined at line 48 of file llvm/lib/Target/X86/GISel/X86RegisterBankInfo.cpp

  • Function * getTLIFunction (Module * M, FunctionType * VectorFTy, StringRef TLIName, Function * ScalarFunc)

    Returns a vector Function that it adds to the Module

    When an

    is not null, it copies its attributes to the newly created

    Function.

    Defined at line 48 of file llvm/lib/CodeGen/ReplaceWithVeclib.cpp

  • void getRelevantOperands (Instruction * I, SmallVectorImpl<Value *> & Ops)

    Given an instruction and a container, it fills all the relevant operands of

    that instruction, with respect to the Trunc expression graph optimizaton.

    Defined at line 48 of file llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp

  • void emitRISCVExtensions (const RecordKeeper & Records, raw_ostream & OS)

    Defined at line 48 of file llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  • void printUnwindLocation (const UnwindLocation & UL, raw_ostream & OS, DIDumpOptions DumpOpts)

    Print an unwind location expression as text and use the register information

    if some is provided.

    Parameters

    R the unwind location to print.
    OS the stream to use for output.
    MRI register information that helps emit register names insteead of raw register numbers.
    IsEH true if the DWARF Call Frame Information is from .eh_frame instead of from .debug_frame. This is needed for register number conversion because some register numbers differ between the two sections for certain architectures like x86.

    Defined at line 48 of file llvm/lib/DebugInfo/DWARF/DWARFUnwindTablePrinter.cpp

  • bool runCGProfilePass (Module & M, FunctionAnalysisManager & FAM, bool InLTO)

    Defined at line 48 of file llvm/lib/Transforms/Instrumentation/CGProfile.cpp

  • unsigned int encodingBits (unsigned int C)

    Defined at line 49 of file llvm/include/llvm/Support/Discriminator.h

  • Error createResolverError (uint32_t Index, unsigned int Kind)

    Defined at line 49 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp

  • SymbolStringPoolEntryUnsafe unwrap (LLVMOrcSymbolStringPoolEntryRef E)

    Defined at line 49 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool isDebugSection (const SectionBase & Sec)

    Defined at line 49 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • bool ComparePadding (const LayoutPtr & S1, const LayoutPtr & S2)

    Defined at line 49 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • int SortAuthStubPair (const ExprStubPairTy * LHS, const ExprStubPairTy * RHS)

    Defined at line 49 of file llvm/lib/CodeGen/MachineModuleInfoImpls.cpp

  • uint32_t getLargeSlotValue (ArrayRef UC)

    Defined at line 49 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • void writeULEB128LargerThan64Bits (raw_ostream & OS)

    Defined at line 49 of file llvm/unittests/DebugInfo/DWARF/DWARFDebugAbbrevTest.cpp

  • bool consumeFront (std::string_view & S, basic_string_view C)

    Defined at line 49 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • bool isV256I32Ty (Type * Ty)

    Defined at line 49 of file llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp

  • void insertCallAtFunctionEntryPoint (Function & Fn, const char * InsertFnName, ArrayRef FunctionArgs)

    Defined at line 49 of file llvm/lib/Transforms/Instrumentation/RealtimeSanitizer.cpp

  • Value * getFCmpValue (unsigned int Code, Value * LHS, Value * RHS, InstCombiner::BuilderTy & Builder, FMFSource FMF)

    This is the complement of getFCmpCode, which turns an opcode and two

    operands into either a FCmp instruction, or a true/false constant.

    Defined at line 49 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void fatal (StringRef filename, const Twine & message)

    Defined at line 49 of file llvm/utils/split-file/split-file.cpp

  • template <class T>
    void * PtrFunc (T * Func)

    Defined at line 49 of file llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp

  • optional toRemarkLocation (const DiagnosticLocation & DL)

    DiagnosticLocation -> remarks::RemarkLocation.

    Defined at line 49 of file llvm/lib/IR/LLVMRemarkStreamer.cpp

  • void ClearImpliedBits (FeatureBitset & Bits, unsigned int Value, ArrayRef FeatureTable)

    For each feature that (transitively) implies this feature, clear it.

    Defined at line 49 of file llvm/lib/MC/MCSubtargetInfo.cpp

  • void executeFNegInst (GenericValue & Dest, GenericValue Src, Type * Ty)

    ===----------------------------------------------------------------------===//

    Unary Instruction Implementations

    ===----------------------------------------------------------------------===//

    Defined at line 49 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • void increaseSetPressure (int & CurrSetPressure, const MachineRegisterInfo & MRI, VirtRegOrUnit VRegOrUnit, LaneBitmask PrevMask, LaneBitmask NewMask)

    Increase pressure for each pressure set provided by TargetRegisterInfo.

    Defined at line 49 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • pair getRUsageTimes ()

    Defined at line 49 of file llvm/lib/Support/Unix/Process.inc

  • Error createMemberHeaderParseError (const AbstractArchiveMemberHeader * ArMemHeader, const char * RawHeaderPtr, uint64_t Size)

    Defined at line 49 of file llvm/lib/Object/Archive.cpp

  • Expected readPropertyValueFromJSON (const json::Value & PropValueVal)

    Defined at line 49 of file llvm/lib/Frontend/Offloading/PropertySet.cpp

  • template <typename AttrSite>
    bool addAssumptionsImpl (AttrSite & Site, const DenseSet<StringRef> & Assumptions)

    Defined at line 49 of file llvm/lib/IR/Assumptions.cpp

  • bool isTargetMD (const MDNode * ProfData, const char * Name, unsigned int MinOps)

    We may want to add support for other MD_prof types, so provide an abstraction

    for checking the metadata type.

    Defined at line 49 of file llvm/lib/IR/ProfDataUtils.cpp

  • PassPluginLibraryInfo getDefaultDynamicInlineOrderPluginInfo ()

    New PM Registration

    Defined at line 49 of file llvm/unittests/Analysis/InlineOrderPlugin/InlineOrderPlugin.cpp

  • template <typename SPSTagT, typename T>
    void spsSerializationRoundTrip (const T & Value)

    Defined at line 49 of file llvm/unittests/ExecutionEngine/Orc/SimplePackedSerializationTest.cpp

  • bool isWindowsPath (StringRef Path)

    ===----------------------------------------------------------------------===//

    URIForFile

    ===----------------------------------------------------------------------===//

    Defined at line 50 of file llvm/lib/Support/LSP/Protocol.cpp

  • TargetMachine * unwrap (LLVMTargetMachineRef P)

    Defined at line 50 of file llvm/lib/Target/TargetMachineC.cpp

  • MachineFunction * getMFIfAvailable (MachineOperand & MO)

    Defined at line 50 of file llvm/lib/CodeGen/MachineOperand.cpp

  • uint64_t getBits (uint64_t Val, int Start, int End)

    Return the bits [Start, End] from Val shifted Start bits.

    For instance, getBits(0xF0, 4, 8) returns 0xF.

    Defined at line 50 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp

  • ErrorErrorCategory & getErrorErrorCat ()

    Defined at line 50 of file llvm/lib/Support/Error.cpp

  • StreamInfo stream (StreamPurpose Purpose, StringRef Label, uint32_t Idx)

    Defined at line 50 of file llvm/tools/llvm-pdbutil/StreamUtil.cpp

  • bool testTagString (unsigned int Tag, const char * name)

    Defined at line 50 of file llvm/unittests/Support/ARMAttributeParser.cpp

  • int makeLLVMModule (LLVMContext & Context, const char * ModuleStr)

    Defined at line 50 of file llvm/unittests/Analysis/LoopInfoTest.cpp

  • basic_string getQualifier (const DirectiveLanguage & DirLang, Frontend FE)

    Get the full namespace qualifier for the directive language.

    Defined at line 50 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • uint64_t xgetbv ()

    Defined at line 50 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c

  • basic_string getOptionPrefixedName (const Record & R)

    Defined at line 50 of file llvm/utils/TableGen/OptionParserEmitter.cpp

  • void printErrorAndExit (Twine ErrMsg)

    Defined at line 50 of file llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp

  • template <size_t N>
    bool parseExpectError (const char (&)[N] Buf, const char * Error)

    Defined at line 50 of file llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp

  • void printName (raw_ostream & OS, StringRef Name)

    Defined at line 50 of file llvm/lib/MC/MCAsmInfoELF.cpp

  • optional matchExpandedRem (Instruction & I)

    See if we can match: (which is the form we expand into)

    X - ((X ?/ Y) * Y)

    which is equivalent to:

    X ?% Y

    Defined at line 50 of file llvm/lib/Transforms/Scalar/DivRemPairs.cpp

  • MaybeAlign getNewAlignmentDiff (const SCEV * DiffSCEV, const SCEV * AlignSCEV, ScalarEvolution * SE)

    Given an expression for the (constant) alignment, AlignSCEV, and an

    expression for the displacement between a pointer and the aligned address,

    DiffSCEV, compute the alignment of the displaced pointer if it can be reduced

    to a constant. Using SCEV to compute alignment handles the case where

    DiffSCEV is a recurrence with constant start such that the aligned offset

    is constant. e.g. {16,+,32} % 32 -> 16.

    Defined at line 50 of file llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp

  • void analyzeICmp (ScalarEvolution & SE, ICmpInst * ICmp, ConditionInfo & Cond, const Loop & L)

    Defined at line 50 of file llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp

  • Function * createAdd1 (Module * M)

    Defined at line 50 of file llvm/examples/ParallelJIT/ParallelJIT.cpp

  • void findReturnsToZap (Function & F, SmallVector<ReturnInst *, 8> & ReturnsToZap, SCCPSolver & Solver)

    Defined at line 50 of file llvm/lib/Transforms/IPO/SCCP.cpp

  • OperandBundleDef * unwrap (LLVMOperandBundleRef P)

    Defined at line 51 of file llvm/lib/IR/Core.cpp

  • LLVMOperandBundleRef wrap (const OperandBundleDef * P)

    Defined at line 51 of file llvm/lib/IR/Core.cpp

  • void initializeLoadStoreOptPassOnce (PassRegistry & Registry)

    Defined at line 51 of file llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp

  • void initializeSpillPlacementWrapperLegacyPassOnce (PassRegistry & Registry)

    Defined at line 51 of file llvm/lib/CodeGen/SpillPlacement.cpp

  • bool testTagString (unsigned int Tag, const char * name)

    Defined at line 51 of file llvm/unittests/Support/RISCVAttributeParserTest.cpp

  • void r2 (uint32_t & A, uint32_t & B, uint32_t & C, uint32_t & D, uint32_t & E, int I, uint32_t * Buf)

    Defined at line 51 of file llvm/lib/Support/SHA1.cpp

  • optional lookupFMVByID (ArchExtKind ExtID)

    Defined at line 51 of file llvm/lib/TargetParser/AArch64TargetParser.cpp

  • BasicBlock * getBasicBlockByName (Function & F, StringRef Name)

    Defined at line 51 of file llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp

  • LoopDeletionResult merge (LoopDeletionResult A, LoopDeletionResult B)

    Defined at line 51 of file llvm/lib/Transforms/Scalar/LoopDeletion.cpp

  • UTF32 foldCharDwarf (UTF32 C)

    Defined at line 51 of file llvm/lib/Support/DJB.cpp

  • bool shouldDisableRetRegFromCSR (CallingConv::ID CC)

    Returns true if a CC can dynamically exclude a register from the list of

    callee-saved-registers (TargetRegistryInfo::getCalleeSavedRegs()) based on

    the return registers.

    Defined at line 51 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • int RunProgramWithTimeout (StringRef ProgramPath, ArrayRef Args, StringRef StdInFile, StringRef StdOutFile, StringRef StdErrFile, unsigned int NumSeconds, unsigned int MemoryLimit, std::string * ErrMsg)

    RunProgramWithTimeout - This function provides an alternate interface

    to the sys::Program::ExecuteAndWait interface.

    Defined at line 51 of file llvm/tools/bugpoint/ToolRunner.cpp

  • LLVMBool roundTripFinalizeMemory (void * object, char ** errMsg)

    Defined at line 51 of file llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp

  • MCDCCoverageInfo sumMCDCPairs (const ArrayRef<MCDCRecord> & Records)

    Defined at line 51 of file llvm/tools/llvm-cov/CoverageSummaryInfo.cpp

  • basic_string formatExportFlags (uint32_t IndentLevel, ExportFlags Flags)

    Defined at line 51 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • Expected expectSubBlock (BitstreamCursor & Stream)

    Defined at line 51 of file llvm/lib/Remarks/BitstreamRemarkParser.cpp

  • void EmitCamlGlobal (const Module & M, AsmPrinter & AP, const char * Id)

    Defined at line 51 of file llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp

  • Predicate mapFCmpPred (Predicate P)

    Given a FCmp predicate, return a matching ICmp predicate if one

    exists, otherwise return BAD_ICMP_PREDICATE.

    Defined at line 51 of file llvm/lib/Transforms/Scalar/Float2Int.cpp

  • BasicBlock * getOnlyLiveSuccessor (BasicBlock * BB)

    If

    is a switch or a conditional branch, but only one of its successors

    can be reached from this block in runtime, return this successor. Otherwise,

    return nullptr.

    Defined at line 51 of file llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp

  • Expected readBlockHeader (DataExtractor & Extractor, uint64_t & Offset)

    Defined at line 51 of file llvm/lib/XRay/Profile.cpp

  • void runJITWithCache (ObjectCache & ObjCache)

    Defined at line 51 of file llvm/examples/OrcV2Examples/LLJITWithObjectCache/LLJITWithObjectCache.cpp

  • void forceAttributes (Function & F)

    If F has any forced attributes given on the command line, add them.

    If F has any forced remove attributes given on the command line, remove

    them. When both force and force-remove are given to a function, the latter

    takes precedence.

    Defined at line 51 of file llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp

  • LLVMErrorRef runPasses (Module * Mod, Function * Fun, const char * Passes, TargetMachine * Machine, LLVMPassBuilderOptions * PassOpts)

    Defined at line 51 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • Function * CreateFibFunction (Module * M, LLVMContext & Context)

    Defined at line 51 of file llvm/examples/Fibonacci/fibonacci.cpp

  • std::optional<std::tuple<PHINode *, PHINode *, const SCEV *, bool>> canFoldTermCondOfLoop (Loop * L, ScalarEvolution & SE, DominatorTree & DT, const LoopInfo & LI, const TargetTransformInfo & TTI)

    Defined at line 51 of file llvm/lib/Transforms/Scalar/LoopTermFold.cpp

  • void initializeLibcallLoweringInfoWrapperPassOnce (PassRegistry & Registry)

    Defined at line 52 of file llvm/lib/CodeGen/LibcallLoweringInfo.cpp

  • template <typename HasherTAndEndianness, typename... Ts>
    typename HashBuilder<HasherTAndEndianness>::template HashResultTy<> hashRangeWithBuilder (const Ts &... Args)

    Defined at line 52 of file llvm/unittests/Support/HashBuilderTest.cpp

  • Section constructSection (const MachO::section_64 & Sec, uint32_t Index)

    Defined at line 52 of file llvm/lib/ObjCopy/MachO/MachOReader.cpp

  • bool MakeErrMsg (std::string * ErrMsg, const std::string & prefix, int errnum)

    This function builds an error message into

    using the

    string and the Unix error number given by

    If errnum is -1, the

    default then the value of errno is used.

    Make an error message

    If the error number can be converted to a string, it will be

    separated from prefix by ": ".

    Defined at line 52 of file llvm/lib/Support/Unix/Unix.h

  • void verifyHashUniqueness (ArrayRef Hashes)

    Defined at line 52 of file llvm/unittests/DebugInfo/CodeView/TypeHashingTest.cpp

  • bool outputQualifierIfPresent (OutputBuffer & OB, Qualifiers Q, Qualifiers Mask, bool NeedSpace)

    Defined at line 52 of file llvm/lib/Demangle/MicrosoftDemangleNodes.cpp

  • bool lowersToCopies (const MachineInstr & MI)

    Returns true if

    will get lowered to a series of COPY instructions.

    We call this a COPY-like instruction.

    Defined at line 52 of file llvm/lib/CodeGen/DetectDeadLanes.cpp

  • SmallVector getStableFunctionEntries (const StableFunctionMap & SFM)

    Get a sorted vector of StableFunctionEntry pointers.

    Defined at line 52 of file llvm/lib/CGData/StableFunctionMapRecord.cpp

  • CmpInst * getOuterLoopLatchCmp (const Loop & OuterLoop)

    Defined at line 52 of file llvm/lib/Analysis/LoopNestAnalysis.cpp

  • bool inlineWillReduceComplexity (const Function & Caller, const Function & Callee)

    TODO: This could use more thought.

    Defined at line 52 of file llvm/tools/llvm-reduce/deltas/ReduceInlineCallSites.cpp

  • template <typename T>
    Expected getTagRecordHashForUdt (const CVType & Rec)

    Defined at line 52 of file llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp

  • Expected parseDuration (StringRef Duration)

    Defined at line 52 of file llvm/lib/Support/CachePruning.cpp

  • bool verifySubExpr (Value * Expr, SmallVectorImpl<Instruction *> & InstInputs)

    Defined at line 52 of file llvm/lib/Analysis/PHITransAddr.cpp

  • Error loadObj (StringRef Filename, object::OwningBinary<object::ObjectFile> & ObjFile, InstrumentationMap::SledContainer & Sleds, InstrumentationMap::FunctionAddressMap & FunctionAddresses, InstrumentationMap::FunctionAddressReverseMap & FunctionIds)

    Defined at line 52 of file llvm/lib/XRay/InstrumentationMap.cpp

  • ExecutionSession * unwrap (LLVMOrcExecutionSessionRef P)

    Defined at line 53 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcExecutionSessionRef wrap (const ExecutionSession * P)

    Defined at line 53 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • BasicBlock ** unwrap (LLVMBasicBlockRef * BBs)

    Defined at line 53 of file llvm/lib/IR/Core.cpp

  • bool isDWOSection (const SectionBase & Sec)

    Defined at line 53 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • relocation_iterator * unwrap (LLVMRelocationIteratorRef SI)

    Defined at line 53 of file llvm/lib/Object/Object.cpp

  • Target * unwrap (LLVMTargetRef P)

    Defined at line 53 of file llvm/lib/Target/TargetMachineC.cpp

  • template <typename EndianType>
    void mapRequiredHex (yaml::IO & IO, const char * Key, EndianType & Val)

    Yaml-map an endian-aware type as an appropriately-sized hex value.

    Defined at line 53 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • int versionMain (int argc, const char *[] argv)

    Top level version information.

    Defined at line 53 of file llvm/tools/llvm-cov/llvm-cov.cpp

  • bool isZero (Use & Op)

    Defined at line 53 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • void deleteFunction (Function & F)

    Defined at line 53 of file llvm/lib/Transforms/IPO/ElimAvailExtern.cpp

  • bool ComparePaddingPct (const LayoutPtr & S1, const LayoutPtr & S2)

    Defined at line 53 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • uint8_t chunk_state_maybe_start_flag (const llvm_blake3_chunk_state * self)

    Defined at line 53 of file llvm/lib/Support/BLAKE3/blake3.c

  • ilist_iterator_w_bits skipPastPhiNodesAndDbg (ilist_iterator_w_bits Itr)

    Defined at line 53 of file llvm/lib/Transforms/Scalar/Scalarizer.cpp

  • void check (Format InputFormat, StringRef Input, Format InputFormat2, StringRef Input2, Format OutputFormat, StringRef ExpectedOutput)

    Defined at line 53 of file llvm/unittests/Remarks/RemarksLinkingTest.cpp

  • Value * allocateFrameInCaller (Function * Caller, uint64_t FrameSize, Align FrameAlign)

    Create an alloca in the caller, using FrameSize and FrameAlign as the callee

    coroutine's activation frame.

    Defined at line 53 of file llvm/lib/Transforms/Coroutines/CoroAnnotationElide.cpp

  • int createISelMutator ()

    Defined at line 53 of file llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp

  • Expected getCOFFStubTarget (LinkGraph & G, Block & B)

    Defined at line 53 of file llvm/tools/llvm-jitlink/llvm-jitlink-coff.cpp

  • bool replaceConditionalBranchesOnConstant (Instruction * II, Value * NewValue, DomTreeUpdater * DTU)

    Defined at line 53 of file llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp

  • bool MIIsInTerminatorSequence (const MachineInstr & MI)

    Given that the input MI is before a partial terminator sequence TSeq, return

    true if M + TSeq also a partial terminator sequence.

    A Terminator sequence is a sequence of MachineInstrs which at this point in

    lowering copy vregs into physical registers, which are then passed into

    terminator instructors so we can satisfy ABI constraints. A partial

    terminator sequence is an improper subset of a terminator sequence (i.e. it

    may be the whole terminator sequence).

    Defined at line 53 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp

  • Value * LowerBSWAP (LLVMContext & Context, Value * V, Instruction * IP)

    Emit the code to lower bswap of V before the specified instruction IP.

    Defined at line 53 of file llvm/lib/CodeGen/IntrinsicLowering.cpp

  • SymbolStringPool * unwrap (LLVMOrcSymbolStringPoolRef P)

    Defined at line 54 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcSymbolStringPoolRef wrap (const SymbolStringPool * P)

    Defined at line 54 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool isNetworkPath (StringRef Path)

    Defined at line 54 of file llvm/lib/Support/LSP/Protocol.cpp

  • SourceMgr setupSM (std::string & LastErrorMessage)

    Defined at line 54 of file llvm/lib/Remarks/YAMLRemarkParser.cpp

  • ErrorSuccess reportWarning (Error E)

    Defined at line 54 of file llvm/tools/llvm-objcopy/llvm-objcopy.cpp

  • bool isExplicitAlign (const CodeGenInstruction * Inst)

    Defined at line 54 of file llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  • Value * callPrintfBegin (IRBuilder<> & Builder, Value * Version)

    Defined at line 54 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • void check (Format SerializerFormat, const remarks::Remark & R, StringRef ExpectedR, StringRef ExpectedMeta, optional StrTab)

    Defined at line 54 of file llvm/unittests/Remarks/YAMLRemarksSerializerTest.cpp

  • const char * stringForOperandType (OperandType type)

    stringForOperandType - Like stringForContext, but for OperandTypes.

    Defined at line 54 of file llvm/utils/TableGen/X86DisassemblerTables.cpp

  • uint64_t getCallStackHash (const DILocation * DIL)

    Defined at line 54 of file llvm/lib/Transforms/IPO/SampleProfileProbe.cpp

  • const char * BackupNumber (const char * Pos, const char * FirstChar)

    Defined at line 54 of file llvm/lib/Support/FileUtilities.cpp

  • void testUnaryOpExhaustive (StringRef Name, function_ref BitsFn, function_ref IntFn, bool CheckOptimality)

    Defined at line 54 of file llvm/unittests/Support/KnownBitsTest.cpp

  • bool explicifyGuards (Function & F)

    Defined at line 54 of file llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp

  • int llvm_replace_md_operand ()

    Defined at line 54 of file llvm/tools/llvm-c-test/metadata.c

  • vector expandBundle (const std::string & InputPath)

    If the input path is a .dSYM bundle (as created by the dsymutil tool),

    replace it with individual entries for each of the object files inside the

    bundle otherwise return the input path.

    Defined at line 54 of file llvm/tools/llvm-debuginfo-analyzer/llvm-debuginfo-analyzer.cpp

  • void findLoadCallsAtConstantOffset (const Module * M, SmallVectorImpl<DevirtCallSite> & DevirtCalls, Value * VPtr, int64_t Offset, const CallInst * CI, DominatorTree & DT)

    Search for virtual calls that load from VPtr and add them to DevirtCalls.

    Defined at line 54 of file llvm/lib/Analysis/TypeMetadataUtils.cpp

  • Error dumpInput (StringRef File, raw_ostream & OS)

    Defined at line 54 of file llvm/tools/obj2yaml/obj2yaml.cpp

  • bool runPass (Function & F)

    Defined at line 54 of file llvm/lib/Transforms/Scalar/Reg2Mem.cpp

  • Error parse (DataExtractor & Data, uint64_t BaseAddr, const LineEntryCallback & Callback)

    Defined at line 54 of file llvm/lib/DebugInfo/GSYM/LineTable.cpp

  • const char * ReadModule (char SizeofPtr, const char * Begin, const char * End)

    Defined at line 54 of file llvm/tools/sanstats/sanstats.cpp

  • void initializeEHContGuardTargetsPassOnce (PassRegistry & Registry)

    Defined at line 55 of file llvm/lib/CodeGen/EHContGuardTargets.cpp

  • MaterializationUnit * unwrap (LLVMOrcMaterializationUnitRef P)

    Defined at line 55 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcMaterializationUnitRef wrap (const MaterializationUnit * P)

    Defined at line 55 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • uint64_t getHalf (uint64_t N)

    Defined at line 55 of file llvm/lib/Support/ScaledNumber.cpp

  • bool hasUndefElements (unsigned short Mask)

    hasUndefElements - Return true if any of the elements in the mask are undefs

    Defined at line 55 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • LLVMErrorRef dumpObjectsTransform (void * Ctx, LLVMMemoryBufferRef * ObjInOut)

    Defined at line 55 of file llvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/OrcV2CBindingsDumpObjects.c

  • StreamInfo moduleStream (StringRef Label, uint32_t StreamIdx, uint32_t Modi)

    Defined at line 55 of file llvm/tools/llvm-pdbutil/StreamUtil.cpp

  • void initializeLazyValueInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 55 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • int makeLLVMModule (LLVMContext & Context, const char * ModuleStr)

    Defined at line 55 of file llvm/unittests/Analysis/UnrollAnalyzerTest.cpp

  • void initializeInstructionSelectPassOnce (PassRegistry & Registry)

    Defined at line 55 of file llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp

  • DbiStream * getDbiStreamPtr (PDBFile & File)

    Defined at line 55 of file llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp

  • Expected parseExampleModuleFromFile (StringRef FileName)

    Defined at line 55 of file llvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/../ExampleModules.h

  • bool isLocalAlloca (CoroAllocaAllocInst * AI)

    Is the given alloca "local", i.e. bounded in lifetime to not cross a

    suspend point?

    Defined at line 55 of file llvm/lib/Transforms/Coroutines/SpillUtils.cpp

  • bool isEqual (const SmallVector<StringRef> & A, const std::vector<std::string> & B)

    Defined at line 55 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • Expected getMachOStubTarget (LinkGraph & G, Block & B)

    Defined at line 55 of file llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp

  • void exportAsYAML (const InstrumentationMap & Map, raw_ostream & OS, FuncIdConversionHelper & FH)

    Defined at line 55 of file llvm/tools/llvm-xray/xray-extract.cpp

  • void RemoveDeadConstant (Constant * C)

    Defined at line 55 of file llvm/lib/Transforms/IPO/StripSymbols.cpp

  • tuple getBranchWeight (Intrinsic::ID IntrinsicID, CallInst * CI, int BranchCount)

    Defined at line 55 of file llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp

  • bool haveCompatibleDescriptions (const SDNodeInfo & N1, const SDNodeInfo & N2)

    Defined at line 55 of file llvm/utils/TableGen/SDNodeInfoEmitter.cpp

  • template <typename T>
    void write_unsigned_impl (raw_ostream & S, T N, size_t MinDigits, IntegerStyle Style, bool IsNegative)

    Defined at line 55 of file llvm/lib/Support/NativeFormatting.cpp

  • Error removeSections (const CommonConfig & Config, Object & Obj)

    Defined at line 55 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • basic_string getTokName (int Tok)

    Defined at line 55 of file llvm/examples/Kaleidoscope/Chapter9/toy.cpp

  • bool DCEInstruction (Instruction * I, SmallSetVector<Instruction *, 16> & WorkList, const TargetLibraryInfo * TLI)

    ===--------------------------------------------------------------------===//

    DeadCodeElimination pass implementation

    Defined at line 55 of file llvm/lib/Transforms/Scalar/DCE.cpp

  • Expected getIndexedString (Form Form, DataExtractor InfoData, uint64_t & InfoOffset, StringRef StrOffsets, StringRef Str, uint16_t Version)

    Defined at line 55 of file llvm/lib/DWP/DWP.cpp

  • size_t LLVMFuzzerCustomMutator (uint8_t * Data, size_t Size, size_t MaxSize, unsigned int Seed)

    Defined at line 55 of file llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp

  • void initializeX86ArgumentStackSlotPassPassOnce (PassRegistry & Registry)

    Defined at line 56 of file llvm/lib/Target/X86/X86ArgumentStackSlotRebase.cpp

  • void initializeLowerGlobalDtorsLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 56 of file llvm/lib/Transforms/Utils/LowerGlobalDtors.cpp

  • void noop ()

    Defined at line 56 of file llvm/unittests/Support/CrashRecoveryTest.cpp

  • LLVMTargetMachineRef wrap (const TargetMachine * P)

    Defined at line 56 of file llvm/lib/Target/TargetMachineC.cpp

  • bool consumeFront (std::string_view & S, basic_string_view PrefixA, basic_string_view PrefixB, bool A)

    Defined at line 56 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • size_t digitsForNumber (size_t N)

    Defined at line 56 of file llvm/tools/llvm-objdump/DXContainerDump.cpp

  • bool isEntryEqual (const DwarfStringPoolEntry & LHS, const DwarfStringPoolEntry & RHS)

    Defined at line 56 of file llvm/unittests/CodeGen/DwarfStringPoolEntryRefTest.cpp

  • UstarHeader makeUstarHeader ()

    Defined at line 56 of file llvm/lib/Support/TarWriter.cpp

  • error_code getLastSocketErrorCode ()

    Defined at line 56 of file llvm/lib/Support/raw_socket_stream.cpp

  • bool checkScale (unsigned int Scale, StringRef & ErrMsg)

    Defined at line 56 of file llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp

  • void insertCallAtAllFunctionExitPoints (Function & Fn, const char * InsertFnName, ArrayRef FunctionArgs)

    Defined at line 56 of file llvm/lib/Transforms/Instrumentation/RealtimeSanitizer.cpp

  • bool hasBcmp (const Triple & TT)

    Defined at line 56 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • void fixupPHINodeForNormalDest (InvokeInst * Invoke, BasicBlock * OrigBlock, BasicBlock * MergeBlock)

    Fix-up phi nodes in an invoke instruction's normal destination.

    After versioning an invoke instruction, values coming from the original

    block will now be coming from the "merge" block. For example, in the code

    below:

    then_bb:

    %t0 = invoke i32 %ptr() to label %merge_bb unwind label %unwind_dst

    else_bb:

    %t1 = invoke i32 %ptr() to label %merge_bb unwind label %unwind_dst

    merge_bb:

    %t2 = phi i32 [ %t0, %then_bb ], [ %t1, %else_bb ]

    br %normal_dst

    normal_dst:

    %t3 = phi i32 [ %x, %orig_bb ], ...

    "orig_bb" is no longer a predecessor of "normal_dst", so the phi nodes in

    "normal_dst" must be fixed to refer to "merge_bb":

    normal_dst:

    %t3 = phi i32 [ %x, %merge_bb ], ...

    Defined at line 56 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • void reportError (StringRef File, Error E)

    Defined at line 56 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • void verifyTables ()

    Defined at line 56 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • StringRef getUnwindCodeTypeName (uint8_t Code)

    Returns the name of the unwind code.

    Defined at line 56 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • void emitRemark (IntrinsicInst * II, OptimizationRemarkEmitter & ORE, bool Removed)

    Defined at line 56 of file llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp

  • int parseMIR (LLVMContext & Context, int & MIR, const TargetMachine & TM, StringRef MIRCode, MachineModuleInfo & MMI)

    Defined at line 56 of file llvm/unittests/CodeGen/GlobalISel/GISelMITest.h

  • template <IR IRTy>
    typename TypeSelect<IRTy>::BasicBlock * genIR (std::unique_ptr<llvm::Module> & LLVMM, LLVMContext & LLVMCtx, sandboxir::Context & Ctx, function GenerateIRStr, unsigned int NumInstrs)

    Defined at line 56 of file llvm/benchmarks/SandboxIRBench.cpp

  • std::pair<int, int> getNarrowTypeBreakDown (LLT OrigTy, LLT NarrowTy, LLT & LeftoverTy)

    Try to break down

    into

    sized pieces.

    Returns the number of

    elements needed to reconstruct

    with any leftover piece as type

    Returns -1 in the first element of the pair if the breakdown is not

    satisfiable.

    Defined at line 56 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • SmallSet getUnwindRuleRegSet (const dwarf::UnwindRow & UnwindRow, DWARFRegNum Reg)

    Defined at line 56 of file llvm/lib/DWARFCFIChecker/DWARFCFIAnalysis.cpp

  • bool isInteresting (const SCEV * S, const Instruction * I, const Loop * L, ScalarEvolution * SE, LoopInfo * LI)

    isInteresting - Test whether the given expression is "interesting" when

    used by the given expression, within the context of analyzing the

    given loop.

    Defined at line 56 of file llvm/lib/Analysis/IVUsers.cpp

  • bool isSimpleEnoughValueToCommitHelper (Constant * C, SmallPtrSetImpl<Constant *> & SimpleConstants, const DataLayout & DL)

    Return true if the specified constant can be handled by the code generator.

    We don't want to generate something like:

    void *X =

    &X

    /42;

    because the code generator doesn't have a relocation that can handle that.

    This function should be called if C was not found (but just got inserted)

    in SimpleConstants to avoid having to rescan the same constants all the

    time.

    Defined at line 56 of file llvm/lib/Transforms/Utils/Evaluator.cpp

  • void emitARMTargetDef (const RecordKeeper & RK, raw_ostream & OS)

    Defined at line 56 of file llvm/utils/TableGen/Basic/ARMTargetDefEmitter.cpp

  • void initializeCFGuardLongjmpPassOnce (PassRegistry & Registry)

    Defined at line 57 of file llvm/lib/CodeGen/CFGuardLongjmp.cpp

  • MaterializationResponsibility * unwrap (LLVMOrcMaterializationResponsibilityRef P)

    Defined at line 57 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcMaterializationResponsibilityRef wrap (const MaterializationResponsibility * P)

    Defined at line 57 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializeCycleInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 57 of file llvm/lib/Analysis/CycleAnalysis.cpp

  • void initializeX86SuppressAPXForRelocationPassPassOnce (PassRegistry & Registry)

    Defined at line 57 of file llvm/lib/Target/X86/X86SuppressAPXForReloc.cpp

  • void initializeMachineLoopInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 57 of file llvm/lib/CodeGen/MachineLoopInfo.cpp

  • bool isUndef (const MachineInstr & MI)

    Defined at line 57 of file llvm/lib/CodeGen/MachineSSAContext.cpp

  • LLVMRelocationIteratorRef wrap (const relocation_iterator * SI)

    Defined at line 57 of file llvm/lib/Object/Object.cpp

  • void r3 (uint32_t & A, uint32_t & B, uint32_t & C, uint32_t & D, uint32_t & E, int I, uint32_t * Buf)

    Defined at line 57 of file llvm/lib/Support/SHA1.cpp

  • void error (StringRef filename, int64_t line, const Twine & message)

    Defined at line 57 of file llvm/utils/split-file/split-file.cpp

  • LLVMErrorRef myModuleTransform (void * Ctx, LLVMModuleRef Mod)

    Defined at line 57 of file llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/OrcV2CBindingsIRTransforms.c

  • Register getInitPhiReg (MachineInstr & Phi, MachineBasicBlock * LoopBB)

    Return the Phi register value that comes from the incoming block.

    Defined at line 57 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • void printPassMessage (StringRef Name, int PassNum, StringRef TargetDesc, bool Running)

    Defined at line 57 of file llvm/lib/IR/OptBisect.cpp

  • bool onlyKeepDWOPred (const Object & Obj, const SectionBase & Sec)

    Defined at line 57 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • template <typename T>
    Error getObject (const T *& Obj, MemoryBufferRef M, const void * Ptr, const uint64_t Size)

    Sets Obj unless any bytes in [addr, addr + size) fall outsize of m.

    Returns unexpected_eof if error.

    Defined at line 57 of file llvm/lib/Object/COFFObjectFile.cpp

  • CPUSubTypeARM64 getARM64SubType (const Triple & T)

    Defined at line 57 of file llvm/lib/BinaryFormat/MachO.cpp

  • void warn (Twine Message, Twine Whence, basic_string Hint)

    Defined at line 57 of file llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp

  • void dumpRanges (const DWARFObject & Obj, raw_ostream & OS, const DWARFAddressRangesVector & Ranges, unsigned int AddressSize, unsigned int Indent, const DIDumpOptions & DumpOpts)

    Defined at line 57 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • void HandleOverflow (size_t & Capacity, char *& Output, size_t & OutputLength, SmallVectorImpl<char> & Result)

    Defined at line 57 of file llvm/lib/Support/TextEncoding.cpp

  • Expected getELFStubTarget (LinkGraph & G, Block & B)

    Defined at line 57 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp

  • uint8_t getSMCPriority (StorageMappingClass SMC)

    Defined at line 57 of file llvm/lib/MC/MCDisassembler/MCDisassembler.cpp

  • NodeType getPreferredExtendForValue (const Instruction * I)

    Defined at line 57 of file llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp

  • optional parseReplacementItem (StringRef Spec)

    Defined at line 57 of file llvm/lib/Support/FormatVariadic.cpp

  • optional parseJumpTable (GetElementPtrInst * GEP, PointerType * PtrTy)

    Defined at line 57 of file llvm/lib/Transforms/Scalar/JumpTableToSwitch.cpp

  • bool runSCCP (Function & F, const DataLayout & DL, const TargetLibraryInfo * TLI, DominatorTree & DT, AssumptionCache & AC)

    runSCCP() - Run the Sparse Conditional Constant Propagation algorithm,

    and return true if the function was modified.

    Defined at line 57 of file llvm/lib/Transforms/Scalar/SCCP.cpp

  • uint32_t computeBucketCount (uint32_t NumStrings)

    Defined at line 57 of file llvm/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp

  • void initializeGlobalDCELegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 58 of file llvm/lib/Transforms/IPO/GlobalDCE.cpp

  • const char * OverloadTestA ()

    Defined at line 58 of file llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp

  • void initializeX86LowerTileCopyPassOnce (PassRegistry & Registry)

    Defined at line 58 of file llvm/lib/Target/X86/X86LowerTileCopy.cpp

  • void initializeMachineTraceMetricsWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 58 of file llvm/lib/CodeGen/MachineTraceMetrics.cpp

  • void EmitSkeleton (const RecordKeeper & RK, raw_ostream & OS)

    ===----------------------------------------------------------------------===//

    Option B: Register "EmitSkeleton" directly

    The emitter entry may be private scope.

    Defined at line 58 of file llvm/lib/TableGen/TableGenBackendSkeleton.cpp

  • bool isZeroOrOneFP (Value * Op)

    Defined at line 58 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • Instruction * getInstructionByName (Function & F, StringRef Name)

    Defined at line 58 of file llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp

  • sandboxir::BasicBlock & getBasicBlockByName (sandboxir::Function & F, StringRef Name)

    Defined at line 58 of file llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp

  • optional getFMVInfoFrom (StringRef Feature)

    Defined at line 58 of file llvm/lib/TargetParser/AArch64TargetParser.cpp

  • bool IsBetterCanonical (const GlobalVariable & A, const GlobalVariable & B)

    True if A is better than B.

    Defined at line 58 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp

  • void emitCCHeader (raw_ostream & O, const Record * CC, StringRef Suffix)

    Defined at line 58 of file llvm/utils/TableGen/CallingConvEmitter.cpp

  • const char * lexMacroName (StringRef Str)

    Returns a pointer past the end of a valid macro name at the start of `Str`.

    Valid macro names match the regular expression [a-zA-Z_][0-9a-zA-Z_]*.

    Defined at line 58 of file llvm/lib/TableGen/TGLexer.cpp

  • uint64_t getCallStackHashV0 (const MachineBasicBlock & BB, const MachineInstr & MI, const DILocation * DIL)

    TODO(xur): Remove this once we switch to ImprovedFSDiscriminator.

    Compute a hash value using debug line number, and the line numbers from the

    inline stack.

    Defined at line 58 of file llvm/lib/CodeGen/MIRFSDiscriminator.cpp

  • Instruction * simplifyX86MaskedLoad (IntrinsicInst & II, InstCombiner & IC)

    TODO: If the x86 backend knew how to convert a bool vector mask back to an

    XMM register mask efficiently, we could transform all x86 masked intrinsics

    to LLVM masked intrinsics and remove the x86 masked intrinsic defs.

    Defined at line 58 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • bool isX87ControlInstruction (MachineInstr & MI)

    Defined at line 58 of file llvm/lib/Target/X86/X86InsertWait.cpp

  • int main (int argc, const char ** argv)

    Defined at line 58 of file llvm/tools/llvm-cov/llvm-cov.cpp

  • bool cheapToScalarize (Value * V, Value * EI)

    Return true if the value is cheaper to scalarize than it is to leave as a

    vector operation. If the extract index

    is a constant integer then

    some operations may be cheap to scalarize.

    FIXME: It's possible to create more instructions than previously existed.

    Defined at line 58 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • Expected parseBraceExpansions (StringRef S, optional MaxSubPatterns)

    Identify brace expansions in S and return the list of patterns they expand

    into.

    Defined at line 58 of file llvm/lib/Support/GlobPattern.cpp

  • void initializeKCFIPassOnce (PassRegistry & Registry)

    Defined at line 59 of file llvm/lib/CodeGen/KCFI.cpp

  • void initializeUnreachableBlockElimLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 59 of file llvm/lib/CodeGen/UnreachableBlockElim.cpp

  • JITDylib * unwrap (LLVMOrcJITDylibRef P)

    Defined at line 59 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcJITDylibRef wrap (const JITDylib * P)

    Defined at line 59 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • basic_string getDescription (const Module & M)

    Defined at line 59 of file llvm/lib/IR/Pass.cpp

  • LLVMTargetRef wrap (const Target * P)

    Defined at line 59 of file llvm/lib/Target/TargetMachineC.cpp

  • basic_string getNewName (Module & M, const GlobalValue & GV)

    Defined at line 59 of file llvm/lib/Transforms/IPO/ElimAvailExtern.cpp

  • bool ComparePaddingImmediate (const LayoutPtr & S1, const LayoutPtr & S2)

    Defined at line 59 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • bool AddLinkageNamesToDeclCallOriginsForTuning (const DwarfDebug * DD)

    Defined at line 59 of file llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp

  • bool lowerAtomics (Function & F)

    Defined at line 59 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp

  • void verifyEncoding (MCDwarfLineTableParams Params, int LineDelta, int AddrDelta, ArrayRef ExpectedEncoding)

    Defined at line 59 of file llvm/unittests/MC/DwarfLineTables.cpp

  • sandboxir::BasicBlock * getBasicBlockByName (sandboxir::Function * F, StringRef Name)

    Defined at line 59 of file llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SchedulerTest.cpp

  • bool subWithOverflow (APInt & Result, const APInt & In1, const APInt & In2, bool IsSigned)

    Compute Result = In1-In2, returning true if the result overflowed for this

    type.

    Defined at line 59 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool shouldEscapeInURI (unsigned char C)

    Defined at line 59 of file llvm/lib/Support/LSP/Protocol.cpp

  • Sequence MergeSeqs (Sequence A, Sequence B, bool TopDown)

    ===----------------------------------------------------------------------===//

    Sequence

    ===----------------------------------------------------------------------===//

    Defined at line 59 of file llvm/lib/Transforms/ObjCARC/PtrState.cpp

  • void DisconnectBlocks (BasicBlock * From, BasicBlock * To)

    Defined at line 59 of file llvm/unittests/IR/CFGBuilder.cpp

  • Error wrapImages (ArrayRef BuffersToWrap)

    Defined at line 59 of file llvm/tools/llvm-offload-wrapper/llvm-offload-wrapper.cpp

  • Value * getBoundsCheckCond (Value * Ptr, Value * InstVal, const DataLayout & DL, TargetLibraryInfo & TLI, ObjectSizeOffsetEvaluator & ObjSizeEval, BuilderTy & IRB, ScalarEvolution & SE)

    Gets the conditions under which memory accessing instructions will overflow.

    is the pointer that will be read/written, and

    is either

    the result from the load or the value being stored. It is used to determine

    the size of memory block that is touched.

    Returns the condition under which the access will overflow.

    Defined at line 59 of file llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp

  • template <typename SectionType, typename SegmentType>
    Expected extractSections (const object::MachOObjectFile::LoadCommandInfo & LoadCmd, const object::MachOObjectFile & MachOObj, uint32_t & NextSectionIndex)

    Defined at line 59 of file llvm/lib/ObjCopy/MachO/MachOReader.cpp

  • void initializeMachineFunctionPrinterPassPassOnce (PassRegistry & Registry)

    Defined at line 60 of file llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp

  • ResourceTracker * unwrap (LLVMOrcResourceTrackerRef P)

    Defined at line 60 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcResourceTrackerRef wrap (const ResourceTracker * P)

    Defined at line 60 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializeX86FixupVectorConstantsPassPassOnce (PassRegistry & Registry)

    Defined at line 60 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • void initializePass1PassOnce (PassRegistry & Registry)

    Defined at line 60 of file llvm/unittests/IR/TimePassesTest.cpp

  • basic_string StdString (const char * Ptr)

    Defined at line 60 of file llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp

  • basic_string getIdentifierName (const Record * Rec, StringRef Prefix)

    Get prefixed formatted name, e.g. for "target data", get "OMPD_target_data".

    This should work for any Record as long as BaseRecord::getFormattedName

    works.

    Defined at line 60 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • void defaultDiagHandler (const SMDiagnostic & SMD, bool , const SourceMgr & , std::vector<const MDNode *> & )

    Defined at line 60 of file llvm/lib/MC/MCContext.cpp

  • bool isExplicitUnalign (const CodeGenInstruction * Inst)

    Defined at line 60 of file llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  • StringRef stripIntrinArgSelectTypePrefix (StringRef Type)

    Defined at line 60 of file llvm/utils/TableGen/DXILEmitter.cpp

  • optional fastCaseFoldingDjbHash (StringRef Buffer, uint32_t H)

    Defined at line 60 of file llvm/lib/Support/DJB.cpp

  • basic_string prettyTag (yaml::Node * N)

    Pretty print a tag by replacing tag:yaml.org,2002: with !!.

    Defined at line 60 of file llvm/utils/yaml-bench/YAMLBench.cpp

  • void cpuid (uint32_t[4] out, uint32_t id)

    Defined at line 60 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c

  • unsigned int getExtensionRank (const std::string & ExtName)

    Get the rank for multi-letter extension, lower value meaning higher

    priority/order in canonical order.

    Defined at line 60 of file llvm/lib/Support/RISCVISAUtils.cpp

  • Expected getDriverConfig (ArrayRef Args)

    Defined at line 60 of file llvm/tools/llvm-objcopy/llvm-objcopy.cpp

  • void ApplyFeatureFlag (FeatureBitset & Bits, StringRef Feature, ArrayRef FeatureTable)

    Defined at line 60 of file llvm/lib/MC/MCSubtargetInfo.cpp

  • Error deepWriteArchive (StringRef ArcName, ArrayRef NewMembers, SymtabWritingMode WriteSymtab, Kind Kind, bool Deterministic, bool Thin)

    For regular archives this function simply calls llvm::writeArchive,

    For thin archives it writes the archive file itself as well as its members.

    Defined at line 60 of file llvm/lib/ObjCopy/Archive.cpp

  • X86_64RelType getType64 (MCFixupKind Kind, X86::Specifier & Specifier, bool & IsPCRel)

    Defined at line 60 of file llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp

  • pair getUnicodeEncoding (StringRef Input)

    getUnicodeEncoding - Reads up to the first 4 bytes to determine the Unicode

    encoding form of

    Parameters

    Input A string of length 0 or more.

    Defined at line 60 of file llvm/lib/Support/YAMLParser.cpp

  • DefinitionGenerator * unwrap (LLVMOrcDefinitionGeneratorRef P)

    Defined at line 61 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcDefinitionGeneratorRef wrap (const DefinitionGenerator * P)

    Defined at line 61 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializePass2PassOnce (PassRegistry & Registry)

    Defined at line 61 of file llvm/unittests/IR/TimePassesTest.cpp

  • bool isOnlyLHSMask (unsigned short Mask)

    isOnlyLHSMask - Return true if this mask only refers to its LHS, not

    including undef values..

    Defined at line 61 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • void initializeLiveVariablesWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 61 of file llvm/lib/CodeGen/LiveVariables.cpp

  • template <typename EndianType>
    void mapOptionalHex (yaml::IO & IO, const char * Key, EndianType & Val, typename EndianType::value_type Default)

    Perform an optional yaml-mapping of an endian-aware type as an

    appropriately-sized hex value.

    Defined at line 61 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • bool setDoesNotAccessMemory (Function & F)

    Defined at line 61 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void checkStandalone (Format SerializerFormat, const remarks::Remark & R, StringRef ExpectedR, optional StrTab)

    Defined at line 61 of file llvm/unittests/Remarks/YAMLRemarksSerializerTest.cpp

  • uint64_t packAllocSizeArgs (unsigned int ElemSizeArg, const std::optional<unsigned int> & NumElemsArg)

    Defined at line 61 of file llvm/lib/IR/Attributes.cpp

  • cmpResult strictCompare (const APFloat & LHS, const APFloat & RHS)

    We treat that -0 is less than 0 here.

    Defined at line 61 of file llvm/lib/IR/ConstantFPRange.cpp

  • bool inlineHistoryIncludes (Function * F, int InlineHistoryID, const SmallVectorImpl<std::pair<Function *, int>> & InlineHistory)

    Return true if the specified inline history ID

    indicates an inline history that includes the specified function.

    Defined at line 61 of file llvm/lib/Transforms/IPO/ModuleInliner.cpp

  • Value * callAppendArgs (IRBuilder<> & Builder, Value * Desc, int NumArgs, Value * Arg0, Value * Arg1, Value * Arg2, Value * Arg3, Value * Arg4, Value * Arg5, Value * Arg6, bool IsLast)

    Defined at line 61 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • void writeCFGToDotFile (Function & F, BlockFrequencyInfo * BFI, BranchProbabilityInfo * BPI, uint64_t MaxFreq, bool CFGOnly)

    Defined at line 61 of file llvm/lib/Analysis/CFGPrinter.cpp

  • unsigned int countOperands (SDNode * Node, unsigned int NumExpUses, unsigned int & NumImpUses)

    countOperands - The inputs to target nodes have any actual inputs first,

    followed by an optional chain operand, then an optional glue operand.

    Compute the number of actual operands that will go into the resulting

    MachineInstr.

    Also count physreg RegisterSDNode and RegisterMaskSDNode operands preceding

    the chain and glue. These operands may be implicit on the machine instr.

    Defined at line 61 of file llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp

  • int classifyReductivePower (Value * V)

    Return a reduction priority for

    A higher values means "more reduced".

    Defined at line 61 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsSkip.cpp

  • template <class ELFT>
    Expected getDynamicStrTab (const ELFFile<ELFT> & Elf)

    Defined at line 61 of file llvm/tools/llvm-objdump/ELFDump.cpp

  • bool removeDeadBlocks_v1 (Function & F)

    Remove trivially dead blocks. First version, not preserving the

    DominatorTree.

    Defined at line 61 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • bool isSaturating (AtomicRMWInst & RMWI)

    Return true if the given instruction always produces a value in memory

    equivalent to its value operand.

    Defined at line 61 of file llvm/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp

  • BasicBlock * usersDominator (const MemoryLocation & ML, Instruction * I, DominatorTree & DT, MemorySSA & MSSA)

    Finds a BasicBlock in the CFG where instruction `I` can be moved to while

    not changing the Memory SSA ordering and being guarded by at least one

    condition.

    Defined at line 61 of file llvm/lib/Transforms/Utils/MoveAutoInit.cpp

  • error_code exportToFile (StringRef FilePath, const SimilarityGroupList & SimSections, const DenseMap<Instruction *, unsigned int> & LLVMInstNum)

    Exports the given SimilarityGroups to a JSON file at

    Parameters

    FilePath - The path to the output location.
    SimSections - The similarity groups to process.
    LLVMInstNum - The mapping of Instructions to their location in the module represented by an unsigned integer.

    Defined at line 61 of file llvm/tools/llvm-sim/llvm-sim.cpp

  • void cleanUpTemporaries (NamedMDNode & NamedNode, MDTuple * TemporaryTuple, Module & Program)

    After reducing metadata, we need to remove references to the temporary node,

    this is also done with BFS

    Defined at line 61 of file llvm/tools/llvm-reduce/deltas/ReduceDistinctMetadata.cpp

  • Instruction * foldSelectBinOpIdentity (SelectInst & Sel, const TargetLibraryInfo & TLI, InstCombinerImpl & IC)

    Replace a select operand based on an equality comparison with the identity

    constant of a binop.

    Defined at line 61 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • void replaceFunctionCalls (Function * OldF, Function * NewF)

    Goes over OldF calls and replaces them with a call to NewF.

    Defined at line 61 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp

  • void initializeJMCInstrumenterPassOnce (PassRegistry & Registry)

    Defined at line 62 of file llvm/lib/CodeGen/JMCInstrumenter.cpp

  • void initializeVirtRegMapWrapperLegacyPassOnce (PassRegistry & Registry)

    Defined at line 62 of file llvm/lib/CodeGen/VirtRegMap.cpp

  • void roundTripDestroy (void * object)

    Defined at line 62 of file llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp

  • bool startsWith (basic_string_view S, basic_string_view PrefixA, basic_string_view PrefixB, bool A)

    Defined at line 62 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • template <class AllocatorType, class T, size_t Size, size_t Align>
    void * operator new (size_t size, llvm::RecyclingAllocator<AllocatorType, T, Size, Align> & Allocator)

    Defined at line 62 of file llvm/include/llvm/Support/RecyclingAllocator.h

  • void initializeBranchProbabilityInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 62 of file llvm/lib/Analysis/BranchProbabilityInfo.cpp

  • void addEdge (SmallVectorImpl<LazyCallGraph::Edge> & Edges, int & EdgeIndexMap, LazyCallGraph::Node & N, Kind EK)

    Defined at line 62 of file llvm/lib/Analysis/LazyCallGraph.cpp

  • Expected parseMagic (StringRef & Buf)

    Parse the magic number. This function returns true if this represents remark

    metadata, false otherwise.

    Defined at line 62 of file llvm/lib/Remarks/YAMLRemarkParser.cpp

  • int tblgen_main (int argc, char ** argv)

    ===- TableGen.h ---------------------------------------------------------===//

    Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.

    See https://llvm.org/LICENSE.txt for license information.

    SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

    ===----------------------------------------------------------------------===//

    Shared entry point for llvm-tblgen and llvm-min-tblgen.

    ===----------------------------------------------------------------------===//

    Defined at line 72 of file llvm/utils/TableGen/Basic/TableGen.cpp

  • void LLVMInitializeX86Target ()

    Defined at line 65 of file llvm/lib/Target/X86/X86TargetMachine.cpp

  • void LLVMInitializeX86TargetMCA ()

    Extern function to initialize the targets for the X86 backend

    Defined at line 77 of file llvm/lib/Target/X86/MCA/X86CustomBehaviour.cpp

  • int llvm_module_dump (_Bool Lazy, _Bool New)

    Defined at line 63 of file llvm/tools/llvm-c-test/module.c

  • int llvm_module_list_functions ()

    Defined at line 77 of file llvm/tools/llvm-c-test/module.c

  • Expected launchLocalExecutor (StringRef ExecutablePath)

    Defined at line 70 of file llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/RemoteJITUtils.cpp

  • int llvm_disassemble ()

    disassemble.c

    Defined at line 86 of file llvm/tools/llvm-c-test/disassemble.c

  • Error archive2yaml (llvm::raw_ostream & Out, MemoryBufferRef Source)

    Defined at line 103 of file llvm/tools/obj2yaml/archive2yaml.cpp

  • int gcovMain (int argc, const char *[] argv)

    The main entry point for the gcov compatible coverage tool.

    Defined at line 83 of file llvm/tools/llvm-cov/gcov.cpp

  • Error offload2yaml (llvm::raw_ostream & Out, MemoryBufferRef Source)

    Defined at line 69 of file llvm/tools/obj2yaml/offload2yaml.cpp

  • LLVMBool LLVMVerifyModule (LLVMModuleRef M,  Action, char ** OutMessage)

    Verifies that a module is valid, taking the specified action if not.

    Optionally returns a human-readable description of any invalid constructs.

    OutMessage must be disposed with LLVMDisposeMessage.

    Defined at line 81 of file llvm/lib/Analysis/Analysis.cpp

  •  llvm_orc_registerJITLoaderGDBAllocAction (const char * ArgData, size_t ArgSize)

    Defined at line 76 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.cpp

  • int llvm_is_a_value_as_metadata ()

    Defined at line 83 of file llvm/tools/llvm-c-test/metadata.c

  • Error dumpDebugAddr (llvm::DWARFContext & DCtx, llvm::DWARFYAML::Data & Y)

    Defined at line 56 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • LLVMErrorRef LLVMRunPasses (LLVMModuleRef M, const char * Passes, LLVMTargetMachineRef TM, LLVMPassBuilderOptionsRef Options)

    Construct and run a set of passes over a module

    This function takes a string with the passes that should be used. The format

    of this string is the same as opt's -passes argument for the new pass

    manager. Individual passes may be specified, separated by commas. Full

    pipelines may also be invoked using `default

    <O3

    >` and friends. See opt for

    full reference of the Passes format.

    Defined at line 101 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • LLVMBool LLVMVerifyFunction (LLVMValueRef Fn,  Action)

    Verifies that a single function is valid, taking the specified action. Useful

    for debugging.

    Defined at line 102 of file llvm/lib/Analysis/Analysis.cpp

  • int llvm_object_list_symbols ()

    Defined at line 58 of file llvm/tools/llvm-c-test/object.c

  • Error dumpDebugStrings (llvm::DWARFContext & DCtx, llvm::DWARFYAML::Data & Y)

    Defined at line 88 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • void report_size_overflow (size_t MinSize, size_t MaxSize)

    Report that MinSize doesn't fit into this vector's size type. Throws

    std::length_error or calls report_fatal_error.

    Defined at line 62 of file llvm/lib/Support/SmallVector.cpp

  • int llvm_test_diagnostic_handler ()

    diagnostic.c

    Defined at line 47 of file llvm/tools/llvm-c-test/diagnostic.c

  • LLVMBool LLVMParseBitcodeInContext2 (LLVMContextRef ContextRef, LLVMMemoryBufferRef MemBuf, LLVMModuleRef * OutModule)

    Defined at line 58 of file llvm/lib/Bitcode/Reader/BitReader.cpp

  • void LLVMSetComdat (LLVMValueRef V, LLVMComdatRef C)

    Assign the Comdat to the given global object.

    Defined at line 43 of file llvm/lib/IR/Comdat.cpp

  • LLVMGenericValueRef LLVMCreateGenericValueOfInt (LLVMTypeRef Ty, unsigned long long N, LLVMBool IsSigned)

    ===-- Operations on generic values --------------------------------------===

    Defined at line 40 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMDisasmContextRef LLVMCreateDisasmCPUFeatures (const char * Triple, const char * CPU, const char * Features, void * DisInfo, int TagType, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp)

    Create a disassembler for the TripleName, a specific CPU and specific feature

    string. Symbolic disassembly is supported by passing a block of information

    in the DisInfo parameter and specifying the TagType and callback functions as

    described above. These can all be passed * as NULL. If successful, this

    returns a disassembler context. If not, it returns NULL.

    Defined at line 42 of file llvm/lib/MC/MCDisassembler/Disassembler.cpp

  • int llvm_test_function_attributes ()

    attributes.c

    Defined at line 20 of file llvm/tools/llvm-c-test/attributes.c

  • int llvm_test_callsite_attributes ()

    Defined at line 51 of file llvm/tools/llvm-c-test/attributes.c

  • LLVMGenericValueRef LLVMCreateGenericValueOfPointer (void * P)

    Defined at line 48 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMGenericValueRef LLVMCreateGenericValueOfFloat (LLVMTypeRef Ty, double N)

    Defined at line 54 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  •  LLVMGetComdatSelectionKind (LLVMComdatRef C)

    Get the conflict resolution selection kind for the Comdat.

    Defined at line 48 of file llvm/lib/IR/Comdat.cpp

  • void llvm_regfree (llvm_regex_t * )

    - llvm_regfree - free everything

    Defined at line 49 of file llvm/lib/Support/regfree.c

  • size_t llvm_strlcpy (char * dst, const char * src, size_t siz)

    Copy src to string dst of size siz. At most siz-1 characters

    will be copied. Always NUL terminates (unless siz == 0).

    Returns strlen(src); if retval >= siz, truncation occurred.

    Defined at line 28 of file llvm/lib/Support/regstrlcpy.c

  • void lookupResolveEverythingToNull (const llvm::jitlink::JITLinkContext::LookupMap & Symbols, unique_ptr LC)

    Defined at line 60 of file llvm/unittests/ExecutionEngine/JITLink/JITLinkTestUtils.cpp

  • PassPluginLibraryInfo llvmGetPassPluginInfo ()

    The public entry point for a pass plugin.

    When a plugin is loaded by the driver, it will call this entry point to

    obtain information about this plugin and about how to register its passes.

    This function needs to be implemented by the plugin, see the example below:

    ```

    extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK

    llvmGetPassPluginInfo() {

    return {

    LLVM_PLUGIN_API_VERSION, "MyPlugin", "v0.1", [](PassBuilder

    &PB

    ) { ... }

    };

    }

    ```

    Defined at line 41 of file llvm/unittests/Passes/Plugins/DoublerPlugin/DoublerPlugin.cpp

  • LLVMTargetDataRef LLVMGetModuleDataLayout (LLVMModuleRef M)

    Obtain the data layout for a module.

    Defined at line 41 of file llvm/lib/Target/Target.cpp

  • void LLVMSetModuleDataLayout (LLVMModuleRef M, LLVMTargetDataRef DL)

    Set the data layout for a module.

    Defined at line 45 of file llvm/lib/Target/Target.cpp

  • LLVMTargetDataRef LLVMCreateTargetData (const char * StringRep)

    Creates target data from a target layout string.

    See the constructor llvm::DataLayout::DataLayout.

    Defined at line 49 of file llvm/lib/Target/Target.cpp

  • void LLVMDisposeTargetData (LLVMTargetDataRef TD)

    Deallocates a TargetData.

    See the destructor llvm::DataLayout::~DataLayout.

    Defined at line 53 of file llvm/lib/Target/Target.cpp

  • void LLVMAddTargetLibraryInfo (LLVMTargetLibraryInfoRef TLI, LLVMPassManagerRef PM)

    Adds target library information to a pass manager. This does not take

    ownership of the target library info.

    See the method llvm::PassManagerBase::add.

    Defined at line 57 of file llvm/lib/Target/Target.cpp

  • char * LLVMCopyStringRepOfTargetData (LLVMTargetDataRef TD)

    Converts target data to a target layout string. The string must be disposed

    with LLVMDisposeMessage.

    See the constructor llvm::DataLayout::DataLayout.

    Defined at line 62 of file llvm/lib/Target/Target.cpp

  • uint32_t LLVMRemarkVersion ()

    Returns the version of the remarks library.

    Defined at line 15 of file llvm/tools/remarks-shlib/libremarks.cpp

  • void lto_initialize_disassembler ()

    Initializes LLVM disassemblers.

    FIXME: This doesn't really belong here.

    Defined at line 19 of file llvm/tools/lto/LTODisassembler.cpp

  • DenseMap getImageArguments (StringRef Image, StringSaver & Saver)

    Get a map containing all the arguments for the image. Repeated arguments will

    be placed in a comma separated list.

    Defined at line 62 of file llvm/tools/llvm-offload-binary/llvm-offload-binary.cpp

  • ParseRet tryParseMask (StringRef & MangledName, bool & IsMasked)

    Extracts the `

    <mask

    >` information from the mangled string, and

    sets `IsMasked` accordingly. If successful, the

    <mask

    > token is removed

    from the input string `MangledName`.

    Defined at line 62 of file llvm/lib/IR/VFABIDemangler.cpp

  • void printRanLibHelp (StringRef ToolName)

    Defined at line 62 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • Loop * getInnerMostLoop (const LoopVectorTy & Loops)

    Retrieve the innermost loop in the given loop nest

    It returns a

    nullptr if any loops in the loop vector supplied has more than one sibling.

    The loop vector is expected to contain loops collected in breadth-first

    order.

    Defined at line 62 of file llvm/lib/Analysis/LoopCacheAnalysis.cpp

  • basic_string getHighestNumericTupleInDirectory (llvm::vfs::FileSystem & VFS, StringRef Directory)

    Defined at line 62 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • Constant * FoldBitCast (Constant * V, Type * DestTy)

    Defined at line 62 of file llvm/lib/IR/ConstantFold.cpp

  • InProgressLookupState * unwrap (LLVMOrcLookupStateRef P)

    Defined at line 63 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcLookupStateRef wrap (const InProgressLookupState * P)

    Defined at line 63 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void rename (GlobalValue * GV)

    Defined at line 63 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeX86FixupSetCCPassPassOnce (PassRegistry & Registry)

    Defined at line 63 of file llvm/lib/Target/X86/X86FixupSetCC.cpp

  • Error malformedError (const Twine & Msg)

    Defined at line 63 of file llvm/lib/Object/MachOObjectFile.cpp

  • void CopyStringRef (char * Memory, StringRef Data)

    CopyStringRef - Copies contents of a StringRef into a block of memory and

    null-terminates it.

    Defined at line 63 of file llvm/lib/Support/MemoryBuffer.cpp

  • void r4 (uint32_t & A, uint32_t & B, uint32_t & C, uint32_t & D, uint32_t & E, int I, uint32_t * Buf)

    Defined at line 63 of file llvm/lib/Support/SHA1.cpp

  • void ReportErrnumFatal (const char * Msg, int errnum)

    Include StrError(errnum) in a fatal error message.

    Defined at line 63 of file llvm/lib/Support/Unix/Unix.h

  • bool ComparePaddingPctImmediate (const LayoutPtr & S1, const LayoutPtr & S2)

    Defined at line 63 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • void initializeRegBankSelectPassOnce (PassRegistry & Registry)

    Defined at line 63 of file llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp

  • template <class ELFT>
    Expected<std::unique_ptr<ELFObjectFile<ELFT>>> createPtr (MemoryBufferRef Object, bool InitContent)

    Defined at line 63 of file llvm/lib/Object/ELFObjectFile.cpp

  • sandboxir::BasicBlock * getBasicBlockByName (sandboxir::Function * F, StringRef Name)

    Defined at line 63 of file llvm/unittests/Transforms/Vectorize/SandboxVectorizer/LegalityTest.cpp

  • void CleanupStdHandles (void * Cookie)

    Defined at line 63 of file llvm/lib/Support/InitLLVM.cpp

  • LLVMTargetRef LLVMGetFirstTarget ()

    Returns the first llvm::Target in the registered targets list.

    Defined at line 63 of file llvm/lib/Target/TargetMachineC.cpp

  • bool hasTheRightValue (AssumeInst * Assume, Value * WasOn, AttrKind Kind, unsigned int Value)

    Defined at line 63 of file llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp

  • vector parseGlobalCtors (GlobalVariable * GV)

    Given a llvm.global_ctors list that we can understand,

    return a list of the functions and null terminator as a vector.

    Defined at line 63 of file llvm/lib/Transforms/Utils/CtorUtils.cpp

  • bool inlineSiteContainsAddress (InlineSiteSym & IS, uint32_t OffsetInFunc)

    Defined at line 63 of file llvm/lib/DebugInfo/PDB/Native/NativeFunctionSymbol.cpp

  • Register getArgBaseReg (MachineFunction & MF)

    Defined at line 63 of file llvm/lib/Target/X86/X86ArgumentStackSlotRebase.cpp

  • optional preprocess (StringRef Buf, function_ref ErrHandler)

    Defined at line 63 of file llvm/tools/yaml2obj/yaml2obj.cpp

  • bool matchAliasCondition (const MCInst & MI, const MCSubtargetInfo * STI, const MCInstrInfo & MII, const MCRegisterInfo & MRI, unsigned int & OpIdx, const AliasMatchingData & M, const AliasPatternCond & C, bool & OrPredicateResult)

    Defined at line 63 of file llvm/lib/MC/MCInstPrinter.cpp

  • bool isLoopDead (Loop * L, ScalarEvolution & SE, SmallVectorImpl<BasicBlock *> & ExitingBlocks, BasicBlock * ExitBlock, bool & Changed, BasicBlock * Preheader, LoopInfo & LI)

    Determines if a loop is dead.

    This assumes that we've already checked for unique exit and exiting blocks,

    and that the code is in LCSSA form.

    Defined at line 63 of file llvm/lib/Transforms/Scalar/LoopDeletion.cpp

  • void extractInstrFromFunction (Oracle & O, MachineFunction & MF)

    Defined at line 63 of file llvm/tools/llvm-reduce/deltas/ReduceInstructionsMIR.cpp

  • void initializeFEntryInserterLegacyPassOnce (PassRegistry & Registry)

    Defined at line 64 of file llvm/lib/CodeGen/FEntryInserter.cpp

  • void initializeMIRNamerPassOnce (PassRegistry & Registry)

    Defined at line 64 of file llvm/lib/CodeGen/MIRNamerPass.cpp

  • ThreadSafeContext * unwrap (LLVMOrcThreadSafeContextRef P)

    Defined at line 64 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcThreadSafeContextRef wrap (const ThreadSafeContext * P)

    Defined at line 64 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializeX86FixupInstTuningPassPassOnce (PassRegistry & Registry)

    Defined at line 64 of file llvm/lib/Target/X86/X86FixupInstTuning.cpp

  • VPTransform parseOverrideOption (const std::string & TextOpt)

    Defined at line 64 of file llvm/lib/CodeGen/ExpandVectorPredication.cpp

  • bool isMisExpectDiagEnabled (const LLVMContext & Ctx)

    Defined at line 64 of file llvm/lib/Transforms/Utils/MisExpect.cpp

  • LLVMErrorRef transform (void * Ctx, LLVMOrcThreadSafeModuleRef * ModInOut, LLVMOrcMaterializationResponsibilityRef MR)

    Defined at line 64 of file llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/OrcV2CBindingsIRTransforms.c

  • uint32_t getCStringLength (ArrayRef Data)

    Defined at line 64 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • PreservedAnalyses rtsanPreservedCFGAnalyses ()

    Defined at line 64 of file llvm/lib/Transforms/Instrumentation/RealtimeSanitizer.cpp

  • void getNameWithPrefixImpl (raw_ostream & OS, const Twine & GVName, const DataLayout & DL, ManglerPrefixTy PrefixTy)

    Defined at line 64 of file llvm/lib/IR/Mangler.cpp

  • sockaddr_un setSocketAddr (StringRef SocketPath)

    Defined at line 64 of file llvm/lib/Support/raw_socket_stream.cpp

  • void outputQualifiers (OutputBuffer & OB, Qualifiers Q, bool SpaceBefore, bool SpaceAfter)

    Defined at line 64 of file llvm/lib/Demangle/MicrosoftDemangleNodes.cpp

  • SmallVector parseStreamSpecs (LinePrinter & P)

    Defined at line 64 of file llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp

  • void decreaseSetPressure (int & CurrSetPressure, const MachineRegisterInfo & MRI, VirtRegOrUnit VRegOrUnit, LaneBitmask PrevMask, LaneBitmask NewMask)

    Decrease pressure for each pressure set provided by TargetRegisterInfo.

    Defined at line 64 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • bool shouldReduceOperand (Use & Op)

    Defined at line 64 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • void LLVMSetComdatSelectionKind (LLVMComdatRef C,  Kind)

    Set the conflict resolution selection kind for the Comdat.

    Defined at line 64 of file llvm/lib/IR/Comdat.cpp

  • void emptyAndDetachBlock (BasicBlock * BB, SmallVectorImpl<DominatorTree::UpdateType> * Updates, bool KeepOneInputPHIs)

    Zap all the instructions in the block and replace them with an unreachable

    instruction and notify the basic block's successors that one of their

    predecessors is going away.

    Defined at line 64 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool analyzeGlobalAux (const Value * V, GlobalStatus & GS, SmallPtrSetImpl<const Value *> & VisitedUsers)

    Defined at line 64 of file llvm/lib/Transforms/Utils/GlobalStatus.cpp

  • void EmitInstrDocs (const RecordKeeper & RK, raw_ostream & OS)

    Defined at line 64 of file llvm/utils/TableGen/InstrDocsEmitter.cpp

  • void initializeMachinePostDominatorTreeWrapperPassPassOnce (PassRegistry & Registry)

    declare initializeMachinePostDominatorTreePass

    Defined at line 65 of file llvm/lib/CodeGen/MachinePostDominators.cpp

  • void initializeProcessImplicitDefsLegacyPassOnce (PassRegistry & Registry)

    Defined at line 65 of file llvm/lib/CodeGen/ProcessImplicitDefs.cpp

  • void initializeRegAllocEvictionAdvisorAnalysisLegacyPassOnce (PassRegistry & Registry)

    Defined at line 65 of file llvm/lib/CodeGen/RegAllocEvictionAdvisor.cpp

  • void initializeRemoveRedundantDebugValuesLegacyPassOnce (PassRegistry & Registry)

    Defined at line 65 of file llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp

  • StringRef * unwrap (LLVMRemarkStringRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 65 of file llvm/lib/Remarks/Remark.cpp

  • LLVMRemarkStringRef wrap (const StringRef * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 65 of file llvm/lib/Remarks/Remark.cpp

  • template <class T, std::size_t N>
    StringRef getFieldRawString (const T (&)[N] Field)

    Defined at line 65 of file llvm/lib/Object/Archive.cpp

  • bool shouldDisableArgRegFromCSR (CallingConv::ID CC)

    Returns true if a CC can dynamically exclude a register from the list of

    callee-saved-registers (TargetRegistryInfo::getCalleeSavedRegs()) based on

    the parameters.

    Defined at line 65 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • void ZeroFillBytes (raw_ostream & OS, size_t Size)

    Defined at line 65 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • void error (const Twine & Message)

    Defined at line 65 of file llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp

  • Register getLoopPhiReg (MachineInstr & Phi, MachineBasicBlock * LoopBB)

    Return the Phi register value that comes the loop block.

    Defined at line 65 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • bool xmlStringsEqual (const unsigned char * A, const unsigned char * B)

    Defined at line 65 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • int constructSaveRestorePoints (const int & SRPoints, const int & BBMap)

    Defined at line 65 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • uint64_t ScaleAddrDelta (MCContext & Context, uint64_t AddrDelta)

    Defined at line 65 of file llvm/lib/MC/MCDwarf.cpp

  • LLVMBinaryRef LLVMCreateBinary (LLVMMemoryBufferRef MemBuf, LLVMContextRef Context, char ** ErrorMessage)

    Create a binary file from the given memory buffer.

    The exact type of the binary file will be inferred automatically, and the

    appropriate implementation selected. The context may be NULL except if

    the resulting file is an LLVM IR file.

    The memory buffer is not consumed by this function. It is the responsibilty

    of the caller to free it with

    If NULL is returned, the

    parameter is populated with the

    error's description. It is then the caller's responsibility to free this

    message by calling

    Defined at line 65 of file llvm/lib/Object/Object.cpp

  • unsigned int getResultPatternSize (const TreePatternNode & P, const CodeGenDAGPatterns & CGP)

    getResultPatternCodeSize - Compute the code size of instructions for this

    pattern.

    Defined at line 65 of file llvm/utils/TableGen/DAGISelEmitter.cpp

  • void handle_line (char ** tokens, int ntokens)

    Defined at line 65 of file llvm/tools/llvm-c-test/disassemble.c

  • bool msDemangle (const std::string & S)

    Defined at line 65 of file llvm/tools/llvm-undname/llvm-undname.cpp

  • void WriteOutputFile (const Module * M, const ModuleSummaryIndex * Index)

    Defined at line 65 of file llvm/tools/llvm-as/llvm-as.cpp

  • SmallVector getAllLexicalIndexes (StringRef Name)

    Defined at line 65 of file llvm/lib/DebugInfo/LogicalView/Core/LVSupport.cpp

  • ThreadSafeModule * unwrap (LLVMOrcThreadSafeModuleRef P)

    Defined at line 66 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcThreadSafeModuleRef wrap (const ThreadSafeModule * P)

    Defined at line 66 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void voidNoop ()

    Defined at line 66 of file llvm/unittests/ExecutionEngine/Orc/WrapperFunctionUtilsTest.cpp

  • uint64_t rotl64 (uint64_t X, size_t R)

    Defined at line 66 of file llvm/lib/Support/xxhash.cpp

  • void yield (LLVMContextRef , void * )

    Defined at line 66 of file llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp

  • void initializeWriteBitcodePassPassOnce (PassRegistry & Registry)

    Defined at line 66 of file llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp

  • void reportError (Twine Msg)

    Defined at line 66 of file llvm/tools/llvm-mt/llvm-mt.cpp

  • void collectDebugInfoFromInstructions (const Function & F, DebugInfoFinder & DIFinder)

    Defined at line 66 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • bool write_retry (int fd, const char * buf, size_t count)

    Defined at line 66 of file llvm/lib/Support/ErrorHandling.cpp

  • vector getSpellings (ArrayRef Records)

    Defined at line 66 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • StringRef getSymbolKindName (SymbolKind Kind)

    Defined at line 66 of file llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp

  • Tag GetCompileUnitType (UnitKind Kind, DwarfDebug * DW)

    Defined at line 66 of file llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp

  • void suppressEGPRRegClass (MachineRegisterInfo * MRI, MachineInstr & MI, const X86Subtarget & ST, unsigned int OpNum)

    Defined at line 66 of file llvm/lib/Target/X86/X86SuppressAPXForReloc.cpp

  • basic_string formatCompileSym2Flags (uint32_t IndentLevel, CompileSym2Flags Flags)

    Defined at line 66 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • Expected getNewShfFlags (SectionFlag AllFlags, uint16_t EMachine)

    Defined at line 66 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • pair sumRegions (ArrayRef CodeRegions, const CoverageData & CD)

    Defined at line 66 of file llvm/tools/llvm-cov/CoverageSummaryInfo.cpp

  • bool isCallingConvCCompatible (CallingConv::ID CC, const Triple & TT, FunctionType * FuncTy)

    Defined at line 66 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • int openListener (basic_string Host, basic_string PortStr)

    Defined at line 66 of file llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp

  • void initializeLiveRangeShrinkPassOnce (PassRegistry & Registry)

    Defined at line 67 of file llvm/lib/CodeGen/LiveRangeShrink.cpp

  • JITTargetMachineBuilder * unwrap (LLVMOrcJITTargetMachineBuilderRef P)

    Defined at line 67 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcJITTargetMachineBuilderRef wrap (const JITTargetMachineBuilder * P)

    Defined at line 67 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • CPUSubTypePowerPC getPowerPCSubType (const Triple & T)

    Defined at line 67 of file llvm/lib/BinaryFormat/MachO.cpp

  • const char * LLVMRemarkStringGetData (LLVMRemarkStringRef String)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 67 of file llvm/lib/Remarks/Remark.cpp

  • LLVMByteOrdering LLVMByteOrder (LLVMTargetDataRef TD)

    Returns the byte order of a target, either LLVMBigEndian or

    LLVMLittleEndian.

    See the method llvm::DataLayout::isLittleEndian.

    Defined at line 67 of file llvm/lib/Target/Target.cpp

  • void LLVMShutdown ()

    Deallocate and destroy all ManagedStatic variables.

    Defined at line 67 of file llvm/lib/IR/Core.cpp

  • uint64_t computeCallStackHash (const Instruction & Inst)

    Defined at line 67 of file llvm/lib/Transforms/IPO/SampleProfileProbe.cpp

  • void initializeAATestPassPassOnce (PassRegistry & Registry)

    Defined at line 67 of file llvm/unittests/Analysis/AliasAnalysisTest.cpp

  • basic_string getTypeString (Type * T)

    Defined at line 67 of file llvm/lib/AsmParser/LLParser.cpp

  • template <typename R, typename C = RecordMap<R>, typename K = StringRef>
    R * findRecord (K Key, const C & Container)

    Defined at line 67 of file llvm/lib/TextAPI/RecordsSlice.cpp

  • template <typename T>
    void testFixedIntegralTypeSerialization ()

    Defined at line 67 of file llvm/unittests/ExecutionEngine/Orc/SimplePackedSerializationTest.cpp

  • bool upgradePTESTIntrinsic (Function * F, Intrinsic::ID IID, Function *& NewFn)

    Upgrade the declarations of the SSE4.1 ptest intrinsics whose arguments have

    changed their type from v4f32 to v2i64.

    Defined at line 67 of file llvm/lib/IR/AutoUpgrade.cpp

  • ArrayRef<MCPhysReg> CC_X86_VectorCallGetSSEs (const MVT & ValVT)

    Defined at line 67 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • LLVMErrorRef parseExampleModule (const char * Source, size_t Len, const char * Name, LLVMOrcThreadSafeModuleRef * TSM)

    Defined at line 67 of file llvm/examples/OrcV2Examples/OrcV2CBindingsLazy/OrcV2CBindingsLazy.c

  • bool isCrossCopy (const MachineRegisterInfo & MRI, const MachineInstr & MI, const TargetRegisterClass * DstRC, const MachineOperand & MO)

    Defined at line 67 of file llvm/lib/CodeGen/DetectDeadLanes.cpp

  • void initializeRecordStreamer (const Module & M, function_ref Init)

    Defined at line 67 of file llvm/lib/Object/ModuleSymbolTable.cpp

  • bool isExitBlock (BasicBlock * BB, const SmallVectorImpl<BasicBlock *> & ExitBlocks)

    Return true if the specified block is in the list.

    Defined at line 68 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • uint32_t getMisExpectTolerance (const LLVMContext & Ctx)

    Defined at line 68 of file llvm/lib/Transforms/Utils/MisExpect.cpp

  • void reportError (Twine Msg)

    Defined at line 68 of file llvm/tools/llvm-cvtres/llvm-cvtres.cpp

  • void initializeMemorySSAWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 68 of file llvm/lib/Analysis/MemorySSA.cpp

  • void initializeUnifyLoopExitsLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 68 of file llvm/lib/Transforms/Utils/UnifyLoopExits.cpp

  • void reportError (StringRef Input, StringRef Message)

    Defined at line 68 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • void initializeMIRProfileLoaderPassPassOnce (PassRegistry & Registry)

    Defined at line 68 of file llvm/lib/CodeGen/MIRSampleProfile.cpp

  • bool isFixupKindRIPRel (unsigned int Kind)

    Defined at line 68 of file llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp

  • void exitWithError (Twine Message, Twine Whence, basic_string Hint)

    Defined at line 68 of file llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp

  • const char * stringForOperandEncoding (OperandEncoding encoding)

    stringForOperandEncoding - like stringForContext, but for

    OperandEncodings.

    Defined at line 68 of file llvm/utils/TableGen/X86DisassemblerTables.cpp

  • bool isNullOrUndef (const Constant * C)

    Defined at line 68 of file llvm/lib/Target/TargetLoweringObjectFile.cpp

  • const TargetRegisterClass * constrainRegClass (MachineRegisterInfo & MRI, Register Reg, const TargetRegisterClass * OldRC, const TargetRegisterClass * RC, unsigned int MinNumRegs)

    Defined at line 68 of file llvm/lib/CodeGen/MachineRegisterInfo.cpp

  • void setupBranchForGuard (ArrayRef GuardBlocks, ArrayRef Outgoing, BBPredicates & GuardPredicates)

    Setup the branch instructions for guard blocks.

    Each guard block terminates in a conditional branch that transfers

    control to the corresponding outgoing block or the next guard

    block. The last guard block has two outgoing blocks as successors.

    Defined at line 68 of file llvm/lib/Transforms/Utils/ControlFlowUtils.cpp

  • bool decodeBase64StringEntry (StringRef Str, uint32_t & Result)

    Decode a string table entry in base 64 (//AAAAAA). Expects

    Defined at line 68 of file llvm/lib/Object/COFFObjectFile.cpp

  • int RunProgramRemotelyWithTimeout (StringRef RemoteClientPath, ArrayRef Args, StringRef StdInFile, StringRef StdOutFile, StringRef StdErrFile, unsigned int NumSeconds, unsigned int MemoryLimit)

    RunProgramRemotelyWithTimeout - This function runs the given program

    remotely using the given remote client and the sys::Program::ExecuteAndWait.

    Returns the remote program exit code or reports a remote client error if it

    fails. Remote client is required to return 255 if it failed or program exit

    code otherwise.

    Defined at line 68 of file llvm/tools/bugpoint/ToolRunner.cpp

  • bool isSafeIncreasingBound (const SCEV * Start, const SCEV * BoundSCEV, const SCEV * Step, Predicate Pred, unsigned int LatchBrExitIdx, Loop * L, ScalarEvolution & SE)

    Given a loop with an increasing induction variable, is it possible to

    safely calculate the bounds of a new loop using the given Predicate.

    Defined at line 68 of file llvm/lib/Transforms/Utils/LoopConstrainer.cpp

  • void initializePostRAHazardRecognizerLegacyPassOnce (PassRegistry & Registry)

    Defined at line 69 of file llvm/lib/CodeGen/PostRAHazardRecognizer.cpp

  • ObjectLayer * unwrap (LLVMOrcObjectLayerRef P)

    Defined at line 69 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcObjectLayerRef wrap (const ObjectLayer * P)

    Defined at line 69 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • unsigned int LLVMGenericValueIntWidth (LLVMGenericValueRef GenValRef)

    Defined at line 69 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMErrorRef applyDataLayout (void * Ctx, LLVMModuleRef M)

    Defined at line 69 of file llvm/examples/OrcV2Examples/OrcV2CBindingsVeryLazy/OrcV2CBindingsVeryLazy.c

  • ArrayRef stabilize (BumpPtrAllocator & RecordStorage, ArrayRef Record)

    Defined at line 69 of file llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp

  • Instruction * getContextInstForUse (Use & U)

    Defined at line 69 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • bool setIsCold (Function & F)

    Defined at line 69 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • template <typename T>
    T unwrapIgnoreError (Expected<T> E, T Default)

    Most of the ObjectFile interfaces return an Expected

    <T

    >, so make it easy

    to ignore errors.

    Defined at line 69 of file llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp

  • bool hasMetadataOtherThanDebugLoc (const GlobalVariable * GV)

    Defined at line 69 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp

  • void PrintModRefResults (const char * Msg, bool P, Instruction * I, pair Loc, Module * M)

    Defined at line 69 of file llvm/lib/Analysis/AliasAnalysisEvaluator.cpp

  •  make_output (const uint32_t[8] input_cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags)

    Defined at line 69 of file llvm/lib/Support/BLAKE3/blake3.c

  • Constant * getSplatValueAllowUndef (const ConstantVector * C)

    Normally, we only allow poison in vector splats. However, as this is part

    of the backend, and working with the DAG representation, which currently

    only natively represents undef values, we need to accept undefs here.

    Defined at line 69 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • uint32_t calculateAlignment (const MachOObjectFile & ObjectFile)

    Defined at line 69 of file llvm/lib/Object/MachOUniversalWriter.cpp

  • template <typename T, typename = typename std::enable_if<std::is_arithmetic_v<T>>>
    void extractFromBranchWeightMD (const MDNode * ProfileData, SmallVectorImpl<T> & Weights)

    Defined at line 69 of file llvm/lib/IR/ProfDataUtils.cpp

  • void printBlameContext (const DILineInfo & LineInfo, unsigned int Context)

    Defined at line 69 of file llvm/tools/llvm-cfi-verify/llvm-cfi-verify.cpp

  • void handleMethodOverloadList (ArrayRef Content, SmallVectorImpl<TiReference> & Refs)

    Defined at line 69 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • bool partitionLoopBlocks (Loop & L, BasicBlockSet & ForeBlocks, BasicBlockSet & AftBlocks, DominatorTree & DT)

    Partition blocks in an outer/inner loop pair into blocks before and after

    the loop

    Defined at line 69 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • bool increaseGranularity (int & Chunks)

    Splits Chunks in half and prints them.

    If unable to split (when chunk size is 1) returns false.

    Defined at line 69 of file llvm/tools/llvm-reduce/deltas/Delta.cpp

  • std::pair<MVT, unsigned int> handleMaskRegisterForCallingConv (unsigned int NumElts, CallingConv::ID CC, const X86Subtarget & Subtarget)

    Defined at line 69 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • map collectPfmCounters (const RecordKeeper & Records)

    Defined at line 69 of file llvm/utils/TableGen/ExegesisEmitter.cpp

  • basic_string getMangledTypeStr (Type * Ty, bool & HasUnnamedType)

    Returns a stable mangling for the type specified for use in the name

    mangling scheme used by 'any' types in intrinsic signatures. The mangling

    of named types is simply their name. Manglings for unnamed types consist

    of a prefix ('p' for pointers, 'a' for arrays, 'f_' for functions)

    combined with the mangling of their component types. A vararg function

    type will have a suffix of 'vararg'. Since function types can contain

    other function types, we close a function type mangling with suffix 'f'

    which can't be confused with it's prefix. This ensures we don't have

    collisions between two unrelated function types. Otherwise, you might

    parse ffXX as f(fXX) or f(fX)X. (X is a placeholder for any other type.)

    The HasUnnamedType boolean is set if an unnamed type was encountered,

    indicating that extra care must be taken to ensure a unique name.

    Defined at line 69 of file llvm/lib/IR/Intrinsics.cpp

  • IRTransformLayer * unwrap (LLVMOrcIRTransformLayerRef P)

    Defined at line 70 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcIRTransformLayerRef wrap (const IRTransformLayer * P)

    Defined at line 70 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializeX86AvoidTrailingCallLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 70 of file llvm/lib/Target/X86/X86AvoidTrailingCall.cpp

  • void initializeMIRCanonicalizerPassOnce (PassRegistry & Registry)

    Defined at line 70 of file llvm/lib/CodeGen/MIRCanonicalizerPass.cpp

  • InstrPostProcess * createX86InstrPostProcess (const MCSubtargetInfo & STI, const MCInstrInfo & MCII)

    Defined at line 70 of file llvm/lib/Target/X86/MCA/X86CustomBehaviour.cpp

  • template <class AllocatorType, class T, size_t Size, size_t Align>
    void operator delete (void * E, llvm::RecyclingAllocator<AllocatorType, T, Size, Align> & A)

    Defined at line 70 of file llvm/include/llvm/Support/RecyclingAllocator.h

  • basic_string getDefaultOutputPath (const NewArchiveMember & FirstMember)

    Defined at line 70 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • PreservedAnalyses runSanitizeRealtime (Function & Fn)

    Defined at line 70 of file llvm/lib/Transforms/Instrumentation/RealtimeSanitizer.cpp

  • const MachineFunction * getMFIfAvailable (const MachineInstr & MI)

    Defined at line 70 of file llvm/lib/CodeGen/MachineInstr.cpp

  • void lookupErrorOut (const llvm::jitlink::JITLinkContext::LookupMap & Symbols, unique_ptr LC)

    Defined at line 70 of file llvm/unittests/ExecutionEngine/JITLink/JITLinkTestUtils.cpp

  • SmallVector getStableIndexOperandHashes (const StableFunctionMap::StableFunctionEntry * FuncEntry)

    Get a sorted vector of IndexOperandHashes.

    Defined at line 70 of file llvm/lib/CGData/StableFunctionMapRecord.cpp

  • basic_string formatPax (StringRef Key, StringRef Val)

    A PAX attribute is in the form of "<length> <key>=<value>\n"

    where

    <length

    > is the length of the entire string including

    the length field itself. An example string is this.

    25 ctime=1084839148.1212

    This function create such string.

    Defined at line 70 of file llvm/lib/Support/TarWriter.cpp

  • pair unpackAllocSizeArgs (uint64_t Num)

    Defined at line 70 of file llvm/lib/IR/Attributes.cpp

  • void writeInitialLength (DwarfFormat Format, const uint64_t Length, raw_ostream & OS, bool IsLittleEndian)

    Defined at line 70 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • CmpInst * getInnerLoopGuardCmp (const Loop & InnerLoop)

    Defined at line 70 of file llvm/lib/Analysis/LoopNestAnalysis.cpp

  • CompareFunc getComparisonFunc (ClassSortMode Mode)

    Defined at line 70 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • Instruction * lowerNonLocalAlloca (CoroAllocaAllocInst * AI, const Shape & Shape, SmallVectorImpl<Instruction *> & DeadInsts)

    Turn the given coro.alloca.alloc call into a dynamic allocation.

    This happens during the all-instructions iteration, so it must not

    delete the call.

    Defined at line 70 of file llvm/lib/Transforms/Coroutines/SpillUtils.cpp

  • void reduceCallSites (Oracle & O, Function & F)

    Defined at line 70 of file llvm/tools/llvm-reduce/deltas/ReduceInlineCallSites.cpp

  • void parseArgs (int argc, char ** argv)

    Defined at line 70 of file llvm/tools/llvm-debuginfod-find/llvm-debuginfod-find.cpp

  • void addMainFunction (Module * mod)

    Add main function so can be fully compiled

    Defined at line 70 of file llvm/examples/BrainF/BrainFDriver.cpp

  • void ComputeLiveInBlocks (const SmallPtrSetImpl<BasicBlock *> & UsingBlocks, const SmallPtrSetImpl<BasicBlock *> & DefBlocks, SmallPtrSetImpl<BasicBlock *> & LiveInBlocks, PredIteratorCache & PredCache)

    Given sets of UsingBlocks and DefBlocks, compute the set of LiveInBlocks.

    This is basically a subgraph limited by DefBlocks and UsingBlocks.

    Defined at line 70 of file llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp

  • void processCall (CallBase * CB, Function * Caller, Function * NewCallee, uint64_t FrameSize, Align FrameAlign)

    Given a call or invoke instruction to the elide safe coroutine, this function

    does the following:

    - Allocate a frame for the callee coroutine in the caller using alloca.

    - Replace the old CB with a new Call or Invoke to `NewCallee`, with the

    pointer to the frame as an additional argument to NewCallee.

    Defined at line 70 of file llvm/lib/Transforms/Coroutines/CoroAnnotationElide.cpp

  • Value * simplifyShiftSelectingPackedElement (Instruction * I, const APInt & DemandedMask, InstCombinerImpl & IC, unsigned int Depth)

    Let N = 2 * M.

    Given an N-bit integer representing a pack of two M-bit integers,

    we can select one of the packed integers by right-shifting by either

    zero or M (which is the most straightforward to check if M is a power

    of 2), and then isolating the lower M bits. In this case, we can

    represent the shift as a select on whether the shr amount is nonzero.

    Defined at line 70 of file llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp

  • void * DoSearch (const char * SymbolName)

    Must declare the symbols in the global namespace.

    Defined at line 70 of file llvm/lib/Support/Unix/DynamicLibrary.inc

  • void initializeGCModuleInfoPassOnce (PassRegistry & Registry)

    Defined at line 71 of file llvm/lib/CodeGen/GCMetadata.cpp

  • ObjectTransformLayer * unwrap (LLVMOrcObjectTransformLayerRef P)

    Defined at line 71 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcObjectTransformLayerRef wrap (const ObjectTransformLayer * P)

    Defined at line 71 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializeX86PartialReductionLegacyPassOnce (PassRegistry & Registry)

    Defined at line 71 of file llvm/lib/Target/X86/X86PartialReduction.cpp

  • bool anyExpandVPOverridesSet ()

    Whether any override options are set.

    Defined at line 71 of file llvm/lib/CodeGen/ExpandVectorPredication.cpp

  • uint32_t LLVMRemarkStringGetLen (LLVMRemarkStringRef String)

    Returns the size of the string.

    Defined at line 71 of file llvm/lib/Remarks/Remark.cpp

  • void reportError (StringRef Input, error_code EC)

    Defined at line 71 of file llvm/tools/llvm-mt/llvm-mt.cpp

  • void initializeX86TileConfigPassOnce (PassRegistry & Registry)

    Defined at line 71 of file llvm/lib/Target/X86/X86TileConfig.cpp

  • unsigned int wordsOfString (StringRef s)

    Returns the number of words which will be used to represent this string.

    Defined at line 71 of file llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp

  • Error unsupported (const char * Str, const Triple & T)

    Defined at line 71 of file llvm/lib/BinaryFormat/MachO.cpp

  • bool isAMXCast (Instruction * II)

    Defined at line 71 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • template <typename T>
    optional CmpOptionals (T NewVal, T CurVal)

    Defined at line 71 of file llvm/lib/Target/X86/X86FixupInstTuning.cpp

  • basic_string optionalQuote (const std::string & Undecorated, StringRef Delimiters)

    Quote Undecorated with "" if asked for and not already followed by a '"'.

    Defined at line 71 of file llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp

  • unsigned int getValForKey (StringRef Key, const Remark & Remark)

    Look for matching argument with

    in

    and return the parsed

    integer value or 0 if it is has no integer value.

    Defined at line 71 of file llvm/tools/llvm-remarkutil/RemarkCounter.cpp

  • template <typename T>
    T getStruct (const MachOObjectFile & O, const char * P)

    FIXME: Replace all uses of this function with getStructOrErr.

    Defined at line 71 of file llvm/lib/Object/MachOObjectFile.cpp

  • void addNonConstUser (ClusterMapType & GVtoClusterMap, const GlobalValue * GV, const User * U)

    Defined at line 71 of file llvm/lib/Transforms/Utils/SplitModule.cpp

  • void dumpLocationList (raw_ostream & OS, const DWARFFormValue & FormValue, DWARFUnit * U, unsigned int Indent, DIDumpOptions DumpOpts)

    Defined at line 71 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • Expected readAbbreviatedField (BitstreamCursor & Cursor, const BitCodeAbbrevOp & Op)

    Defined at line 71 of file llvm/lib/Bitstream/Reader/BitstreamReader.cpp

  • void checkSame (const ContextNode & Raw, const PGOCtxProfContext & Profile)

    Defined at line 71 of file llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp

  • uint8_t CountOfUnwindCodes (std::vector<WinEH::Instruction> & Insns)

    NOTE: All relocations generated here are 4-byte image-relative.

    Defined at line 71 of file llvm/lib/MC/MCWin64EH.cpp

  • bool IsAcceptableTarget (Instruction * Inst, BasicBlock * SuccToSinkTo, DominatorTree & DT, LoopInfo & LI)

    IsAcceptableTarget - Return true if it is possible to sink the instruction

    in the specified basic block.

    Defined at line 71 of file llvm/lib/Transforms/Scalar/Sink.cpp

  • void findAffectedValues (CallBase * CI, TargetTransformInfo * TTI, SmallVectorImpl<AssumptionCache::ResultElem> & Affected)

    Defined at line 71 of file llvm/lib/Analysis/AssumptionCache.cpp

  • void convertToLocalCopy (Module & M, Function & F)

    Create a copy of the thinlto import, mark it local, and redirect direct

    calls to the copy. Only direct calls are replaced, so that e.g. indirect

    call function pointer tests would use the global identity of the function.

    Currently, Value Profiling ("VP") MD_prof data isn't updated to refer to the

    clone's GUID (which will be different, because the name and linkage is

    different), under the assumption that the last consumer of this data is

    upstream the pipeline (e.g. ICP).

    Defined at line 71 of file llvm/lib/Transforms/IPO/ElimAvailExtern.cpp

  • int handle (MemoryBuffer & inputBuf, StringRef input)

    Defined at line 71 of file llvm/utils/split-file/split-file.cpp

  • bool isDereferenceableAndAlignedPointer (const Value * V, Align Alignment, const APInt & Size, const DataLayout & DL, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI, SmallPtrSetImpl<const Value *> & Visited, unsigned int MaxDepth)

    Test if V is always a pointer to allocated and suitably aligned memory for

    a simple load or store.

    Defined at line 71 of file llvm/lib/Analysis/Loads.cpp

  • basic_string gtest_OpenMPDirectiveNamesVersionTest_EvalGenerateName_ (const ::testing::TestParamInfo<VersionTest::ParamType> & info)

    Defined at line 72 of file llvm/unittests/Frontend/OpenMPDirectiveNameTest.cpp

  • ParamGenerator gtest_OpenMPDirectiveNamesVersionTest_EvalGenerator_ ()

    Defined at line 72 of file llvm/unittests/Frontend/OpenMPDirectiveNameTest.cpp

  • bool isNonCanonicalEmptySet (const APFloat & Lower, const APFloat & Upper)

    Defined at line 72 of file llvm/lib/IR/ConstantFPRange.cpp

  • bool hasBranchUse (ICmpInst & I)

    Given an icmp instruction, return true if any use of this comparison is a

    branch on sign bit comparison.

    Defined at line 72 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void BM_LookupRuntimeLibcallByNameKnownCalls (benchmark::State & State)

    Defined at line 72 of file llvm/benchmarks/RuntimeLibcalls.cpp

  • void ascendingSortByVersion (int & Recs)

    In-place sort TableGen records of class with a field

    Version dxil_version

    in the ascending version order.

    Defined at line 72 of file llvm/utils/TableGen/DXILEmitter.cpp

  • Expected parseVersion (StringRef & Buf)

    Defined at line 72 of file llvm/lib/Remarks/YAMLRemarkParser.cpp

  • void reduceAtomicOrderingInFunction (Oracle & O, Function & F)

    TODO: Might be helpful to incrementally relax orders

    Defined at line 72 of file llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp

  • void parseExpectErrorMeta (StringRef Buf, const char * Error, CmpType Cmp, optional ExternalFilePrependPath)

    Defined at line 72 of file llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp

  • Expected getSocketFD (StringRef SocketPath)

    Defined at line 72 of file llvm/lib/Support/raw_socket_stream.cpp

  • template <uint32_t ConstD>
    uint64_t scale (uint64_t Num, uint32_t N, uint32_t D)

    If ConstD is not zero, then replace D by ConstD so that division and modulo

    operations by D can be optimized, in case this function is not inlined by the

    compiler.

    Defined at line 72 of file llvm/lib/Support/BranchProbability.cpp

  • void fixupIndexV4 (DWARFContext & C, DWARFUnitIndex & Index)

    Defined at line 72 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • DumpObjects * unwrap (LLVMOrcDumpObjectsRef P)

    Defined at line 73 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcDumpObjectsRef wrap (const DumpObjects * P)

    Defined at line 73 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void reportError (StringRef Input, error_code EC)

    Defined at line 73 of file llvm/tools/llvm-cvtres/llvm-cvtres.cpp

  • template <typename T>
    void eraseFromModule (T & ToErase)

    Defined at line 73 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • void initializeLegalizerPassOnce (PassRegistry & Registry)

    Defined at line 73 of file llvm/lib/CodeGen/GlobalISel/Legalizer.cpp

  • void PrintExtension (StringRef Name, StringRef Version, StringRef Description)

    Defined at line 73 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • unsigned long long LLVMGenericValueToInt (LLVMGenericValueRef GenVal, LLVMBool IsSigned)

    Defined at line 73 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMTargetRef LLVMGetNextTarget (LLVMTargetRef T)

    Returns the next llvm::Target given a previous one (or null if there's none)

    Defined at line 71 of file llvm/lib/Target/TargetMachineC.cpp

  • unsigned int LLVMPointerSize (LLVMTargetDataRef TD)

    Returns the pointer size in bytes for a target.

    See the method llvm::DataLayout::getPointerSize.

    Defined at line 71 of file llvm/lib/Target/Target.cpp

  • void LLVMGetVersion (unsigned int * Major, unsigned int * Minor, unsigned int * Patch)

    Return the major, minor, and patch version of LLVM

    The version components are returned via the function's three output

    parameters or skipped if a NULL pointer was supplied.

    Defined at line 73 of file llvm/lib/IR/Core.cpp

  • bool isMergeableElement (const unsigned char * ElementName)

    Defined at line 73 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • template <typename T>
    void parseIntArg (const opt::InputArgList & Args, int ID, T & Value, T Default)

    Defined at line 73 of file llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp

  • unique_ptr getProcCpuinfoContent ()

    Defined at line 73 of file llvm/lib/TargetParser/Host.cpp

  • Value * generateUnsignedRemainderCode (Value * Dividend, Value * Divisor, IRBuilder<> & Builder)

    Generate code to compute the remainder of two unsigned integers. Returns the

    remainder. Builder's insert point should be pointing where the caller wants

    code generated, e.g. at the urem instruction. This will generate a udiv in

    the process, and Builder's insert point will be pointing at the udiv (if

    present, i.e. not folded), ready to be expanded if the user wishes

    Defined at line 73 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • const Instruction * getInstCondition (const Instruction * I)

    Defined at line 73 of file llvm/lib/Transforms/Utils/MisExpect.cpp

  • void dumpNode (yaml::Node * n, unsigned int Indent, bool SuppressFirstIndent)

    Defined at line 73 of file llvm/utils/yaml-bench/YAMLBench.cpp

  • IndirectStubsManager * unwrap (LLVMOrcIndirectStubsManagerRef P)

    Defined at line 74 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcIndirectStubsManagerRef wrap (const IndirectStubsManager * P)

    Defined at line 74 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializeBreakCriticalEdgesPassOnce (PassRegistry & Registry)

    Defined at line 74 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp

  • void initializeFlattenCFGLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 74 of file llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp

  • Expected setupMemoryBuffer (const Twine & Filename, vfs::FileSystem & FS)

    Defined at line 74 of file llvm/lib/ProfileData/InstrProfReader.cpp

  • template <class ContainerT>
    void testJoin ()

    Defined at line 74 of file llvm/unittests/ADT/StringExtrasTest.cpp

  • InstructionCost getCost (Instruction & Inst, TargetCostKind CostKind, TargetTransformInfo & TTI, TargetLibraryInfo & TLI)

    Defined at line 74 of file llvm/lib/Analysis/CostModel.cpp

  • bool testAttributeInt (unsigned int Tag, unsigned int Value, unsigned int ExpectedTag, unsigned int ExpectedValue)

    Defined at line 74 of file llvm/unittests/Support/CSKYAttributeParserTest.cpp

  • StringRef getUnwindRegisterName (uint8_t Reg)

    Returns the name of a referenced register.

    Defined at line 74 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • Instruction * lookThroughAnd (PHINode * Phi, Type *& RT, SmallPtrSetImpl<Instruction *> & Visited, SmallPtrSetImpl<Instruction *> & CI)

    Determines if Phi may have been type-promoted. If Phi has a single user

    that ANDs the Phi with a type mask, return the user. RT is updated to

    account for the narrower bit width represented by the mask, and the AND

    instruction is added to CI.

    Defined at line 74 of file llvm/lib/Analysis/IVDescriptors.cpp

  • SDValue emitRepstos (const X86Subtarget & Subtarget, SelectionDAG & DAG, const SDLoc & dl, SDValue Chain, SDValue Dst, SDValue Val, SDValue Size, MVT AVT)

    Emit a single REP STOSB instruction for a particular constant size.

    Defined at line 74 of file llvm/lib/Target/X86/X86SelectionDAGInfo.cpp

  • void addMappingsFromTLI (const TargetLibraryInfo & TLI, CallInst & CI)

    Defined at line 74 of file llvm/lib/Transforms/Utils/InjectTLIMappings.cpp

  • void cloneFrameInfo (MachineFrameInfo & DstMFI, const MachineFrameInfo & SrcMFI, const int & Src2DstMBB)

    Defined at line 74 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • int main (int argc, const char *[] argv)

    Defined at line 74 of file llvm/examples/OrcV2Examples/OrcV2CBindingsRemovableCode/OrcV2CBindingsRemovableCode.c

  • bool foldGuardedFunnelShift (Instruction & I, const DominatorTree & DT)

    Match a pattern for a bitwise funnel/rotate operation that partially guards

    against undefined behavior by branching around the funnel-shift/rotation

    when the shift amount is 0.

    Defined at line 74 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • void initializeExpandPostRALegacyPassOnce (PassRegistry & Registry)

    Defined at line 75 of file llvm/lib/CodeGen/ExpandPostRAPseudos.cpp

  • void initializeX86FastTileConfigPassOnce (PassRegistry & Registry)

    Defined at line 75 of file llvm/lib/Target/X86/X86FastTileConfig.cpp

  • char getHexDigit (int N)

    Defined at line 75 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • void printDisablePassMessage (const StringRef & Name, StringRef TargetDesc, bool Running)

    Defined at line 75 of file llvm/lib/IR/OptBisect.cpp

  • Expected getELFAArch32StubTarget (LinkGraph & G, Block & B)

    Defined at line 75 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp

  • void error (Error EC)

    Defined at line 75 of file llvm/tools/llvm-mt/llvm-mt.cpp

  • Error writeFile (StringRef Filename, StringRef Data)

    Defined at line 75 of file llvm/tools/llvm-offload-binary/llvm-offload-binary.cpp

  • bool isEmptyFunction (Function * F)

    Returns true if F is effectively empty.

    Defined at line 75 of file llvm/lib/Transforms/IPO/GlobalDCE.cpp

  • bool SkipToToken (StringRef & Str)

    Defined at line 75 of file llvm/tools/llvm-ml/Disassembler.cpp

  • void replaceWithTLIFunction (IntrinsicInst * II, VFInfo & Info, Function * TLIVecFunc)

    Replace the intrinsic call

    to

    which is the

    corresponding function from the vector library.

    Defined at line 75 of file llvm/lib/CodeGen/ReplaceWithVeclib.cpp

  • bool matchVPDPBUSDPattern (const X86Subtarget * ST, BinaryOperator * Mul, const DataLayout * DL)

    This function should be aligned with detectExtMul() in X86ISelLowering.cpp.

    Defined at line 75 of file llvm/lib/Target/X86/X86PartialReduction.cpp

  • bool callLooksLikeLoadStore (CallBase * CB, Value *& DataArg, Value *& PtrArg)

    Look for calls that look like they could be replaced with a load or store.

    Defined at line 75 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp

  • bool lowerAllowChecks (Function & F, const BlockFrequencyInfo & BFI, const ProfileSummaryInfo * PSI, OptimizationRemarkEmitter & ORE, const LowerAllowCheckPass::Options & Opts)

    Defined at line 75 of file llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp

  • LazyCallThroughManager * unwrap (LLVMOrcLazyCallThroughManagerRef P)

    Defined at line 76 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcLazyCallThroughManagerRef wrap (const LazyCallThroughManager * P)

    Defined at line 76 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializeX86WinEHUnwindV2PassOnce (PassRegistry & Registry)

    Defined at line 76 of file llvm/lib/Target/X86/X86WinEHUnwindV2.cpp

  • void BugpointInterruptFunction ()

    Defined at line 76 of file llvm/tools/bugpoint/bugpoint.cpp

  • bool isCallOrRealInstruction (MachineInstr & MI)

    A real instruction is a non-meta, non-pseudo instruction. Some pseudos

    expand to nothing, and some expand to code. This logic conservatively assumes

    they might expand to nothing.

    Defined at line 76 of file llvm/lib/Target/X86/X86AvoidTrailingCall.cpp

  • bool isMetadataIntroducer (uint8_t FirstByte)

    Defined at line 76 of file llvm/lib/XRay/FDRRecordProducer.cpp

  • void reportError (StringRef Input, error_code EC)

    Defined at line 76 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • void initializeRegUsageInfoCollectorLegacyPassOnce (PassRegistry & Registry)

    Defined at line 76 of file llvm/lib/CodeGen/RegUsageInfoCollector.cpp

  • WrapperFunctionBuffer voidNoopWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 76 of file llvm/unittests/ExecutionEngine/Orc/WrapperFunctionUtilsTest.cpp

  • unsigned int getCompressedMask (unsigned short Mask)

    getCompressedMask - Turn a 16-bit uncompressed mask (where each elt uses 4

    bits) into a compressed 13-bit mask, where each elt is multiplied by 9.

    Defined at line 76 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • ArrayRef stabilize (BumpPtrAllocator & Alloc, ArrayRef Data)

    Defined at line 76 of file llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp

  • PreservedAnalyses runSanitizeRealtimeBlocking (Function & Fn)

    Defined at line 76 of file llvm/lib/Transforms/Instrumentation/RealtimeSanitizer.cpp

  • bool haveCompatibleDescriptions (ArrayRef<SDNodeInfo> Nodes)

    Defined at line 76 of file llvm/utils/TableGen/SDNodeInfoEmitter.cpp

  • void initializeBasicBlockMatchingAndInferencePassOnce (PassRegistry & Registry)

    Defined at line 76 of file llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp

  • basic_string getParamName1 (const testing::TestParamInfo<Tokenize::ParamType> & Info)

    Defined at line 76 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • int GetRPOList (MachineFunction & MF)

    Defined at line 76 of file llvm/lib/CodeGen/MIRCanonicalizerPass.cpp

  • uint64_t getCallStackHash (const DILocation * DIL)

    Defined at line 76 of file llvm/lib/CodeGen/MIRFSDiscriminator.cpp

  • void cpuidex (uint32_t[4] out, uint32_t id, uint32_t sid)

    Defined at line 76 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c

  • bool IsEquivalentPHI (PHINode * PHI, SmallDenseMap<BasicBlock *, Value *, 8> & ValueMapping)

    Defined at line 76 of file llvm/lib/Transforms/Utils/SSAUpdater.cpp

  • bool skip (DataExtractor & Data, uint64_t & Offset, bool SkippedRanges)

    Skip an InlineInfo object in the specified data at the specified offset.

    Used during the InlineInfo::lookup() call to quickly skip child InlineInfo

    objects where the addres ranges isn't contained in the InlineInfo object

    or its children. This avoids allocations by not appending child InlineInfo

    objects to the InlineInfo::Children array.

    Parameters

    Data The binary stream to read the data from.
    Offset The byte offset within
    SkippedRanges If true, address ranges have already been skipped.

    Defined at line 76 of file llvm/lib/DebugInfo/GSYM/InlineInfo.cpp

  • void * operator new (size_t N, const NamedBufferAlloc & Alloc)

    Defined at line 76 of file llvm/lib/Support/MemoryBuffer.cpp

  • int getSearchPaths (opt::InputArgList * Args, StringSaver & Saver)

    Defined at line 76 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • bool handleSwitchExpect (SwitchInst & SI)

    Defined at line 76 of file llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp

  • void printArHelp (StringRef ToolName)

    Defined at line 76 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void * memCreateContext (void * CtxCtx)

    Callbacks to create the context for the subsequent functions (not used in

    this example)

    Defined at line 77 of file llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c

  • void reportCmdLineError (const Twine & Message)

    Defined at line 77 of file llvm/tools/llvm-strings/llvm-strings.cpp

  • void fail (const Twine & Message)

    Defined at line 77 of file llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp

  • void canonicalizeRange (APFloat & Lower, APFloat & Upper)

    Defined at line 77 of file llvm/lib/IR/ConstantFPRange.cpp

  • Value * appendArg (IRBuilder<> & Builder, Value * Desc, Value * Arg, bool IsLast)

    Defined at line 77 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • bool setNoReturn (Function & F)

    Defined at line 77 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void error (StringRef Input, Error EC)

    Defined at line 77 of file llvm/tools/llvm-cvtres/llvm-cvtres.cpp

  • void generateEnumExports (ArrayRef Records, raw_ostream & OS, StringRef Enum, StringRef Prefix)

    Defined at line 77 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • size_t getStringIndex (StringRef Name)

    Defined at line 77 of file llvm/lib/DebugInfo/LogicalView/Core/LVElement.cpp

  • bool isAMXIntrinsic (Value * I)

    Defined at line 77 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • bool checkBitsConcrete (Record & R, const RecordVal & RV)

    Defined at line 77 of file llvm/lib/TableGen/TGParser.cpp

  • void orderValue (const Value * V, OrderMap & OM)

    Defined at line 77 of file llvm/lib/Bitcode/Writer/ValueEnumerator.cpp

  • MachineInstr * FindDominatedInstruction (MachineInstr & New, MachineInstr * Old, const int & M)

    Returns

    if it's dominated by

    otherwise return

    maintains a map from instruction to its dominating order that satisfies

    M[A] > M[B] guarantees that A is dominated by B.

    If

    is not in

    return

    Otherwise if

    is null, return

    Defined at line 77 of file llvm/lib/CodeGen/LiveRangeShrink.cpp

  • GlobalVariable * findGlobalCtors (Module & M)

    Find the llvm.global_ctors list.

    Defined at line 77 of file llvm/lib/Transforms/Utils/CtorUtils.cpp

  • Expected<SmallVector<std::string, 16>> getDWOFilenames (StringRef ExecFilename)

    Defined at line 77 of file llvm/tools/llvm-dwp/llvm-dwp.cpp

  • StringRef getElementTypeName (ElementType ET)

    Defined at line 77 of file llvm/lib/Analysis/DXILResource.cpp

  • void dumpFunctionProfileJson (const FunctionSamples & S, json::OStream & JOS, bool TopLevel)

    Defined at line 77 of file llvm/lib/ProfileData/SampleProfReader.cpp

  • bool runImpl (Module & M)

    Defined at line 77 of file llvm/lib/Transforms/Utils/LowerGlobalDtors.cpp

  • void initializeDeadMachineInstructionElimPassOnce (PassRegistry & Registry)

    Defined at line 78 of file llvm/lib/CodeGen/DeadMachineInstructionElim.cpp

  • void initializeOptimizePHIsLegacyPassOnce (PassRegistry & Registry)

    Defined at line 78 of file llvm/lib/CodeGen/OptimizePHIs.cpp

  • LLJITBuilder * unwrap (LLVMOrcLLJITBuilderRef P)

    Defined at line 78 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcLLJITBuilderRef wrap (const LLJITBuilder * P)

    Defined at line 78 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializeRemoveLoadsIntoFakeUsesLegacyPassOnce (PassRegistry & Registry)

    Defined at line 78 of file llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp

  • template <IR IRTy>
    void finalize (sandboxir::Context & Ctx)

    Defined at line 78 of file llvm/benchmarks/SandboxIRBench.cpp

  • const char * EndOfNumber (const char * Pos)

    EndOfNumber - Return the first character that is not part of the specified

    number. This assumes that the buffer is null terminated, so it won't fall

    off the end.

    Defined at line 78 of file llvm/lib/Support/FileUtilities.cpp

  • void pushStackMapConstant (SmallVectorImpl<SDValue> & Ops, SelectionDAGBuilder & Builder, uint64_t Value)

    Defined at line 78 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • void copyDebugLocMetadata (const GlobalVariable * From, GlobalVariable * To)

    Defined at line 78 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp

  • BinaryOps mapBinOpcode (unsigned int Opcode)

    Given a floating point binary operator, return the matching

    integer version.

    Defined at line 78 of file llvm/lib/Transforms/Scalar/Float2Int.cpp

  • template <typename T>
    Expected getSourceLineHash (const CVType & Rec)

    Defined at line 78 of file llvm/lib/DebugInfo/PDB/Native/TpiHashing.cpp

  • template <typename T>
    void write_unsigned (raw_ostream & S, T N, size_t MinDigits, IntegerStyle Style, bool IsNegative)

    Defined at line 78 of file llvm/lib/Support/NativeFormatting.cpp

  • void removeBlockFromLoops (BasicBlock * BB, Loop * FirstLoop, Loop * LastLoop)

    Removes

    from all loops from [FirstLoop, LastLoop) in parent chain.

    Defined at line 78 of file llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp

  • BlockFrequency adjustedSumFreq (SmallPtrSetImpl<BasicBlock *> & BBs, BlockFrequencyInfo & BFI)

    Return adjusted total frequency of

    * If there is only one BB, sinking instruction will not introduce code

    size increase. Thus there is no need to adjust the frequency.

    * If there are more than one BB, sinking would lead to code size increase.

    In this case, we add some "tax" to the total frequency to make it harder

    to sink. E.g.

    Freq(Preheader) = 100

    Freq(BBs) = sum(50, 49) = 99

    Even if Freq(BBs)

    <

    Freq(Preheader), we will not sink from Preheade to

    BBs as the difference is too small to justify the code size increase.

    To model this, The adjusted Freq(BBs) will be:

    AdjustedFreq(BBs) = 99 / SinkFrequencyPercentThreshold%

    Defined at line 78 of file llvm/lib/Transforms/Scalar/LoopSink.cpp

  • bool hasSingleValue (const ValueLatticeElement & Val)

    Returns true if this lattice value represents at most one possible value.

    This is as precise as any lattice value can get while still representing

    reachable code.

    Defined at line 78 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • void tryToGetTargetInfo (const MachineInstr & MI, const TargetRegisterInfo *& TRI, const MachineRegisterInfo *& MRI, const TargetInstrInfo *& TII)

    Try to crawl up to the machine function and get TRI/MRI/TII from it.

    Defined at line 78 of file llvm/lib/CodeGen/MachineInstr.cpp

  • void StripSymtab (ValueSymbolTable & ST, bool PreserveDbgInfo)

    Strip the symbol table of its names.

    Defined at line 78 of file llvm/lib/Transforms/IPO/StripSymbols.cpp

  • bool isValidModule (std::unique_ptr<Module> & M, bool ExitOnFailure)

    Defined at line 78 of file llvm/tools/bugpoint/CrashDebugger.cpp

  • Expected readPath (DataExtractor & Extractor, uint64_t & Offset)

    Defined at line 78 of file llvm/lib/XRay/Profile.cpp

  • unsigned int getFixupKindLog2Size (unsigned int Kind)

    Defined at line 78 of file llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp

  • LLVMBool LLVMGetBitcodeModuleInContext (LLVMContextRef ContextRef, LLVMMemoryBufferRef MemBuf, LLVMModuleRef * OutM, char ** OutMessage)

    Reads a module from the specified path, returning via the OutMP parameter

    a module provider which performs lazy deserialization. Returns 0 on success.

    Optionally returns a human-readable error message via OutMessage.

    This is deprecated. Use LLVMGetBitcodeModuleInContext2.

    Defined at line 78 of file llvm/lib/Bitcode/Reader/BitReader.cpp

  • basic_string demangle (const std::string & Mangled, StringRef Delimiters)

    Defined at line 78 of file llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp

  • function createIdentityMDPredicate (const Function & F, CloneFunctionChangeType Changes)

    Create a predicate that matches the metadata that should be identity mapped

    during function cloning.

    Defined at line 78 of file llvm/lib/Transforms/Utils/CloneFunction.cpp

  • void testBinaryOpExhaustive (StringRef Name, function_ref BitsFn, function_ref IntFn, bool CheckOptimality, bool RefinePoisonToZero)

    Defined at line 78 of file llvm/unittests/Support/KnownBitsTest.cpp

  • bool checkIfSupported (GlobalVariable & G)

    Defined at line 78 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • void outputCallingConvention (OutputBuffer & OB, CallingConv CC)

    Defined at line 78 of file llvm/lib/Demangle/MicrosoftDemangleNodes.cpp

  • void initializeMachineCFGPrinterPassOnce (PassRegistry & Registry)

    Defined at line 79 of file llvm/lib/CodeGen/MachineCFGPrinter.cpp

  • LLJIT * unwrap (LLVMOrcLLJITRef P)

    Defined at line 79 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcLLJITRef wrap (const LLJIT * P)

    Defined at line 79 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void * noReentry (void * )

    Defined at line 79 of file llvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp

  • void LLVMInitializeAllTargetInfos ()

    LLVMInitializeAllTargetInfos - The main program should call this function if

    it wants access to all available targets that LLVM is configured to

    support.

    Defined at line 79 of file llvm/include/llvm-c/Target.h

  • void LLVMInitializeAllTargetInfos ()

    LLVMInitializeAllTargetInfos - The main program should call this function if

    it wants access to all available targets that LLVM is configured to

    support.

    Defined at line 79 of file llvm/include/llvm-c/Target.h

  • void printHeader (LinePrinter & P, const Twine & S)

    Defined at line 79 of file llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp

  • ArrayRef stabilize (BumpPtrAllocator & Alloc, ArrayRef Data)

    Defined at line 79 of file llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp

  • Value * getCondition (Instruction * I)

    Get the condition of

    It can either be a guard or a conditional branch.

    Defined at line 79 of file llvm/lib/Transforms/Scalar/GuardWidening.cpp

  • ParsedModuleAndIndex parseAssemblyWithIndex (MemoryBufferRef F, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, bool UpgradeDebugInfo, function_ref DataLayoutCallback)

    Defined at line 79 of file llvm/lib/AsmParser/Parser.cpp

  • bool containsUnreachable (const Loop & L, ArrayRef Roots)

    Checks if there's a stray instruction in the loop

    outside of the

    use-def chains from

    or if we escape the loop during the use-def

    walk.

    Defined at line 79 of file llvm/lib/Analysis/HashRecognize.cpp

  • bool calculateUpperBound (const Loop & L, ScalarEvolution & SE, ConditionInfo & Cond, bool IsExitCond)

    Defined at line 79 of file llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp

  • ExpectedErrorOr RunTest (StringRef Input, size_t SizeLimit, SampleProfileFormat Format, bool Compress)

    The main testing routine. After rewriting profiles with size limit, check

    the following:

    1. The file size of the new profile is within the size limit.

    2. The new profile is a subset of the old profile, and the content of every

    sample in the new profile is unchanged.

    Note that even though by default samples with fewest total count are dropped

    first, this is not a requirement. Samples can be dropped by any order.

    Defined at line 79 of file llvm/unittests/tools/llvm-profdata/OutputSizeLimitTest.cpp

  • void initializeLowerEmuTLSPassOnce (PassRegistry & Registry)

    Defined at line 80 of file llvm/lib/CodeGen/LowerEmuTLS.cpp

  • void initializeMIRPrintingPassPassOnce (PassRegistry & Registry)

    Defined at line 80 of file llvm/lib/CodeGen/MIRPrintingPass.cpp

  • TargetMachine * unwrap (LLVMTargetMachineRef P)

    Defined at line 80 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTargetMachineRef wrap (const TargetMachine * P)

    Defined at line 80 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool isValidReg (const MachineOperand & MO)

    Defined at line 80 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp

  • void exitWithError (Error E, StringRef Whence)

    Defined at line 80 of file llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp

  • void initializeLiveDebugVariablesWrapperLegacyPassOnce (PassRegistry & Registry)

    Defined at line 80 of file llvm/lib/CodeGen/LiveDebugVariables.cpp

  • uint8_t readUint8 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 80 of file llvm/lib/Object/WasmObjectFile.cpp

  • int reportError (const char * ProgName, Twine Msg)

    Defined at line 80 of file llvm/lib/TableGen/Main.cpp

  • uint64_t round (uint64_t Acc, uint64_t Input)

    Defined at line 80 of file llvm/lib/Support/xxhash.cpp

  • void initializeScalarizeMaskedMemIntrinLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 80 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • bool isMemOperand (const MCInst & MI, unsigned int Op, unsigned int RegClassID)

    Defined at line 80 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp

  • void debugHWLoopFailure (StringRef DebugMsg, Instruction * I)

    Defined at line 80 of file llvm/lib/CodeGen/HardwareLoops.cpp

  • void PrintStack (raw_ostream & OS)

    Defined at line 80 of file llvm/lib/Support/PrettyStackTrace.cpp

  • void identifyCallee (OptimizationRemark & R, const Module * M, const Value * V, StringRef Kind)

    Defined at line 80 of file llvm/lib/Analysis/KernelInfo.cpp

  • unsigned int translateToNVVMDWARFAddrSpace (unsigned int AddrSpace)

    Translate NVVM IR address space code to DWARF correspondent value

    Defined at line 80 of file llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp

  • void collectPrivatizingConstructs (llvm::SmallSet<Directive, 16> & Constructs, unsigned int Version)

    Defined at line 80 of file llvm/lib/Frontend/OpenMP/OMP.cpp

  • StringRef mangledNameForMallocFamily (const MallocFamily & Family)

    Defined at line 80 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • bool isTileDef (MachineRegisterInfo * MRI, MachineInstr & MI)

    Defined at line 80 of file llvm/lib/Target/X86/X86FastTileConfig.cpp

  • void placeSplitBlockCarefully (BasicBlock * NewBB, SmallVectorImpl<BasicBlock *> & SplitPreds, Loop * L)

    If the block isn't already, move the new block to right after some 'outside

    block' block. This prevents the preheader from being placed inside the loop

    body, e.g. when the loop hasn't been rotated.

    Defined at line 80 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • void parseCHRFilterFiles ()

    Defined at line 80 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • bool IsStoredObjCPointer (const Value * P)

    Test if the value of P, or any value covered by its provenance, is ever

    stored within the function (not counting callees).

    Defined at line 80 of file llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp

  • void visitComponent (const std::string & Name, const StringMap<AvailableComponent *> & ComponentMap, std::set<AvailableComponent *> & VisitedComponents, std::vector<std::string> & RequiredLibs, bool IncludeNonInstalled, bool GetComponentNames, const std::function<std::string (const StringRef &)> * GetComponentLibraryPath, std::vector<std::string> * Missing, const std::string & DirSep)

    Traverse a single component adding to the topological ordering in

    Parameters

    Name - The component to traverse.
    ComponentMap - A prebuilt map of component names to descriptors.
    VisitedComponents [in] [out] - The set of already visited components.
    RequiredLibs [out] - The ordered list of required libraries.
    GetComponentNames - Get the component names instead of the library name.

    Defined at line 80 of file llvm/tools/llvm-config/llvm-config.cpp

  • void initializeTailDuplicateLegacyPassOnce (PassRegistry & Registry)

    Defined at line 81 of file llvm/lib/CodeGen/TailDuplication.cpp

  • bool isCallInstruction (const MachineInstr & MI)

    Return true if this is a call instruction, but not a tail call.

    Defined at line 81 of file llvm/lib/Target/X86/X86AvoidTrailingCall.cpp

  • PassPluginLibraryInfo getByePluginInfo ()

    New PM Registration

    Defined at line 81 of file llvm/examples/Bye/Bye.cpp

  • uint64_t packVScaleRangeArgs (unsigned int MinValue, optional MaxValue)

    Defined at line 81 of file llvm/lib/IR/Attributes.cpp

  • WrapperFunctionBuffer addWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 81 of file llvm/unittests/ExecutionEngine/Orc/WrapperFunctionUtilsTest.cpp

  • uint8_t byteFromRec (const Record * rec, StringRef name)

    byteFromRec - Extract a value at most 8 bits in with from a Record given the

    name of the field.

    Parameters

    rec - The record from which to extract the value.
    name - The name of the field in the record.

    Returns

    - The field, as translated by byteFromBitsInit().

    Defined at line 81 of file llvm/utils/TableGen/X86RecognizableInstr.cpp

  • void initializeLiveIntervalsWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 81 of file llvm/lib/CodeGen/LiveIntervals.cpp

  • void adjustColumn (unsigned int & Column)

    Defined at line 81 of file llvm/lib/IR/DebugInfoMetadata.cpp

  • void reportOpenError (StringRef Path, Twine Msg)

    Defined at line 81 of file llvm/lib/LTO/LTOBackend.cpp

  • void writeDWARFOffset (uint64_t Offset, DwarfFormat Format, raw_ostream & OS, bool IsLittleEndian)

    Defined at line 81 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • void PrintModRefResults (const char * Msg, bool P, CallBase * CallA, CallBase * CallB, Module * M)

    Defined at line 81 of file llvm/lib/Analysis/AliasAnalysisEvaluator.cpp

  • GVDAGType getGVDT ()

    Defined at line 81 of file llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp

  • bool hasConstantAddressingMode (const MachineInstr & MI)

    This function returns whether the passed instruction uses a memory addressing

    mode that is constant. We treat all memory addressing modes that read

    from a register that is not %rip as non-constant. Note that the use

    of the EFLAGS register results in an addressing mode being considered

    non-constant, therefore all JCC instructions will return false from this

    function since one of their operands will always be the EFLAGS register.

    Defined at line 81 of file llvm/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp

  • void PrintMask (unsigned int i, std::ostream & OS)

    Defined at line 81 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • bool irTranslatorNeverAddsLocations (unsigned int Opcode)

    Defined at line 81 of file llvm/lib/CodeGen/GlobalISel/LostDebugLocObserver.cpp

  • void printLine (raw_ostream & OS, const Twine & Prefix, char Fill, StringRef Suffix)

    Defined at line 81 of file llvm/lib/TableGen/TableGenBackend.cpp

  • basic_string pointerOptions (PointerOptions Options)

    Defined at line 81 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • bool isSuitableForBSS (const GlobalVariable * GV)

    Defined at line 81 of file llvm/lib/Target/TargetLoweringObjectFile.cpp

  • char getTypeID (Type * Ty)

    Defined at line 81 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • bool isOneDimensionalArray (const SCEV & AccessFn, const SCEV & ElemSize, const Loop & L, ScalarEvolution & SE)

    Defined at line 81 of file llvm/lib/Analysis/LoopCacheAnalysis.cpp

  • ParseRet tryParseVLEN (StringRef & ParseString, VFISAKind ISA, std::pair<unsigned int, bool> & ParsedVF)

    Extract the `

    <vlen

    >` information from the mangled string, and

    sets `ParsedVF` accordingly. A `

    <vlen

    > == "x"` token is interpreted as a

    scalable vector length and the boolean is set to true, otherwise a nonzero

    unsigned integer will be directly used as a VF. On success, the `

    <vlen

    >`

    token is removed from the input string `ParseString`.

    Defined at line 81 of file llvm/lib/IR/VFABIDemangler.cpp

  • Register LookForIdenticalPHI (MachineBasicBlock * BB, SmallVectorImpl<std::pair<MachineBasicBlock *, Register>> & PredValues)

    Defined at line 81 of file llvm/lib/CodeGen/MachineSSAUpdater.cpp

  • bool isEligibleFunction (Function * F)

    Returns true if function

    is eligible for merging.

    Defined at line 81 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • Function * CreateFibFunction (Module * M)

    Defined at line 81 of file llvm/examples/ParallelJIT/ParallelJIT.cpp

  • void getRegistersForValue (MachineFunction & MF, MachineIRBuilder & MIRBuilder, GISelAsmOperandInfo & OpInfo, GISelAsmOperandInfo & RefOpInfo)

    Assign virtual/physical registers for the specified register operand.

    Defined at line 81 of file llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp

  • bool formLCSSAForInstructionsImpl (SmallVectorImpl<Instruction *> & Worklist, const DominatorTree & DT, const LoopInfo & LI, ScalarEvolution * SE, SmallVectorImpl<PHINode *> * PHIsToRemove, SmallVectorImpl<PHINode *> * InsertedPHIs, LoopExitBlocksTy & LoopExitBlocks)

    For every instruction from the worklist, check to see if it has any uses

    that are outside the current loop. If so, insert LCSSA PHI nodes and

    rewrite the uses.

    Defined at line 81 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • void memNotifyTerminating (void * CtxCtx)

    Defined at line 82 of file llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c

  • void * LLVMGenericValueToPointer (LLVMGenericValueRef GenVal)

    Defined at line 82 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void report_at_maximum_capacity (size_t MaxSize)

    Report that this vector is already at maximum capacity. Throws

    std::length_error or calls report_fatal_error.

    Defined at line 77 of file llvm/lib/Support/SmallVector.cpp

  • LLVMTargetRef LLVMGetTargetFromName (const char * Name)

    ===-- Target ------------------------------------------------------------===

    Finds the target corresponding to the given name and stores it in

    Returns 0 on success.

    Defined at line 75 of file llvm/lib/Target/TargetMachineC.cpp

  • LLVMRemarkStringRef LLVMRemarkDebugLocGetSourceFilePath (LLVMRemarkDebugLocRef DL)

    Return the path to the source file for a debug location.

    Defined at line 75 of file llvm/lib/Remarks/Remark.cpp

  • uint32_t LLVMRemarkDebugLocGetSourceLine (LLVMRemarkDebugLocRef DL)

    Return the line in the source file for a debug location.

    Defined at line 80 of file llvm/lib/Remarks/Remark.cpp

  • LLVMMemoryBufferRef LLVMBinaryCopyMemoryBuffer (LLVMBinaryRef BR)

    Retrieves a copy of the memory buffer associated with this object file.

    The returned buffer is merely a shallow copy and does not own the actual

    backing buffer of the binary. Nevertheless, it is the responsibility of the

    caller to free it with

    Defined at line 79 of file llvm/lib/Object/Object.cpp

  • unique_ptr makeMockContext (unique_function HandleFailed, unique_function SetupMemMgr, unique_function SetupContext)

    Defined at line 77 of file llvm/unittests/ExecutionEngine/JITLink/JITLinkTestUtils.cpp

  • unsigned int LLVMPointerSizeForAS (LLVMTargetDataRef TD, unsigned int AS)

    Returns the pointer size in bytes for a target for a specified

    address space.

    See the method llvm::DataLayout::getPointerSize.

    Defined at line 75 of file llvm/lib/Target/Target.cpp

  • LLVMTypeRef LLVMIntPtrType (LLVMTargetDataRef TD)

    Returns the integer type that is the same size as a pointer on a target.

    See the method llvm::DataLayout::getIntPtrType.

    Defined at line 79 of file llvm/lib/Target/Target.cpp

  • void pad (raw_fd_ostream & OS)

    Headers in tar files must be aligned to 512 byte boundaries.

    This function forwards the current file position to the next boundary.

    Defined at line 82 of file llvm/lib/Support/TarWriter.cpp

  • void replaceWithConstant (Constant * Value, SmallVectorImpl<CoroSubFnInst *> & Users)

    Go through the list of coro.subfn.addr intrinsics and replace them with the

    provided constant.

    Defined at line 82 of file llvm/lib/Transforms/Coroutines/CoroElide.cpp

  • bool switchCaseExists (Use & Op, ConstantInt * CI)

    Defined at line 82 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp

  • void PrintOps (Instruction * I, const SmallVectorImpl<ValueEntry> & Ops)

    Print out the expression identified in the Ops list.

    Defined at line 82 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • bool isX87NonWaitingControlInstruction (MachineInstr & MI)

    Defined at line 82 of file llvm/lib/Target/X86/X86InsertWait.cpp

  • LLVMBool LLVMGetTargetFromTriple (const char * Triple, LLVMTargetRef * T, char ** ErrorMessage)

    Finds the target corresponding to the given triple and stores it in

    Returns 0 on success. Optionally returns any error in ErrorMessage.

    Use LLVMDisposeMessage to dispose the message.

    Defined at line 82 of file llvm/lib/Target/TargetMachineC.cpp

  • void maybeRewriteCallWithDifferentBundles (CallBase * OrigCall, ArrayRef OperandBundlesToKeepIndexes)

    Defined at line 82 of file llvm/tools/llvm-reduce/deltas/ReduceOperandBundles.cpp

  • Metadata * canonicalizeMetadataForValue (LLVMContext & Context, Metadata * MD)

    Canonicalize metadata arguments to intrinsics.

    To support bitcode upgrades (and assembly semantic sugar) for

    we need to canonicalize certain metadata.

    - nullptr is replaced by an empty MDNode.

    - An MDNode with a single null operand is replaced by an empty MDNode.

    - An MDNode whose only operand is a

    gets skipped.

    This maintains readability of bitcode from when metadata was a type of

    value, and these bridges were unnecessary.

    Defined at line 82 of file llvm/lib/IR/Metadata.cpp

  • void collectRelocatedSymbols (const ObjectFile * Obj, const SectionRef & Sec, uint64_t SecAddress, uint64_t SymAddress, uint64_t SymSize, StringRef * I, StringRef * E)

    Defined at line 82 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • bool simplifyX86MaskedStore (IntrinsicInst & II, InstCombiner & IC)

    TODO: If the x86 backend knew how to convert a bool vector mask back to an

    XMM register mask efficiently, we could transform all x86 masked intrinsics

    to LLVM masked intrinsics and remove the x86 masked intrinsic defs.

    Defined at line 82 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • void transformGlobalArray (StringRef ArrayName, Module & M, const GlobalCtorTransformFn & Fn)

    Defined at line 82 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • Align getNewAlignment (const SCEV * AASCEV, const SCEV * AlignSCEV, const SCEV * OffSCEV, Value * Ptr, ScalarEvolution * SE)

    There is an address given by an offset OffSCEV from AASCEV which has an

    alignment AlignSCEV. Use that information, if possible, to compute a new

    alignment for Ptr.

    Defined at line 82 of file llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp

  • int llvm_mt_main (int Argc, char ** Argv, const llvm::ToolContext & )

    Defined at line 82 of file llvm/tools/llvm-mt/llvm-mt.cpp

  • basic_string getInstrProfErrString (instrprof_error Err, const std::string & ErrMsg)

    Defined at line 82 of file llvm/lib/ProfileData/InstrProf.cpp

  • void initializePatchableFunctionLegacyPassOnce (PassRegistry & Registry)

    Defined at line 83 of file llvm/lib/CodeGen/PatchableFunction.cpp

  • void initializeEarlyTailDuplicateLegacyPassOnce (PassRegistry & Registry)

    Defined at line 83 of file llvm/lib/CodeGen/TailDuplication.cpp

  • void initializeX86DynAllocaExpanderLegacyPassOnce (PassRegistry & Registry)

    Defined at line 83 of file llvm/lib/Target/X86/X86DynAllocaExpander.cpp

  • Error initializeReader (InstrProfReader & Reader)

    Defined at line 83 of file llvm/lib/ProfileData/InstrProfReader.cpp

  • void warnOnSkippedNode (const SDNodeInfo & N, const Twine & Reason)

    Defined at line 83 of file llvm/utils/TableGen/SDNodeInfoEmitter.cpp

  • LLVMTypeRef LLVMIntPtrTypeForAS (LLVMTargetDataRef TD, unsigned int AS)

    Returns the integer type that is the same size as a pointer on a target.

    This version allows the address space to be specified.

    See the method llvm::DataLayout::getIntPtrType.

    Defined at line 83 of file llvm/lib/Target/Target.cpp

  • bool isAllTrueMask (Value * MaskVal)

    Defined at line 83 of file llvm/lib/CodeGen/ExpandVectorPredication.cpp

  • template <typename T>
    void parseIntArg (const opt::InputArgList & Args, int ID, T & Value)

    Defined at line 83 of file llvm/tools/llvm-strings/llvm-strings.cpp

  • void viewCFG (Function & F, const BlockFrequencyInfo * BFI, const BranchProbabilityInfo * BPI, uint64_t MaxFreq, bool CFGOnly)

    Defined at line 83 of file llvm/lib/Analysis/CFGPrinter.cpp

  • bool hasByteCountSuffix (CallingConv::ID CC)

    Defined at line 83 of file llvm/lib/IR/Mangler.cpp

  • void BM_LookupRuntimeLibcallByNameRandomCalls (benchmark::State & State)

    Defined at line 83 of file llvm/benchmarks/RuntimeLibcalls.cpp

  • void percentEncode (StringRef Content, std::string & Out)

    Encodes a string according to percent-encoding.

    - Unreserved characters are not escaped.

    - Reserved characters always escaped with exceptions like '/'.

    - All other characters are escaped.

    Defined at line 83 of file llvm/lib/Support/LSP/Protocol.cpp

  • bool upgradeX86IntrinsicsWith8BitMask (Function * F, Intrinsic::ID IID, Function *& NewFn)

    Upgrade the declarations of intrinsic functions whose 8-bit immediate mask

    arguments have changed their type from i32 to i8.

    Defined at line 83 of file llvm/lib/IR/AutoUpgrade.cpp

  • basic_string getStatString (const char * Msg, int32_t Fraction, int32_t All, const char * PercentageOfMsg, bool LineEnd)

    Defined at line 83 of file llvm/lib/Analysis/ImportedFunctionsInliningStatistics.cpp

  • void reportArchiveChildIssue (const object::Archive::Child & C, int Index, StringRef ArchiveFilename)

    Some problem occurred with an archive member; complain and continue.

    Defined at line 83 of file llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp

  • basic_string computeAArch64DataLayout (const Triple & TT)

    Helper function to build a DataLayout string

    Defined at line 83 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • Type * getFloatTypeForLLT (LLVMContext & Ctx, LLT Ty)

    Defined at line 83 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • bool isSignTest (ICmpInst::Predicate & Pred, const APInt & C)

    Returns true if the exploded icmp can be expressed as a signed comparison

    to zero and updates the predicate accordingly.

    The signedness of the comparison is preserved.

    TODO: Refactor with decomposeBitTestICmp()?

    Defined at line 83 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • tuple convertToHSV (const std::tuple<uint8_t, uint8_t, uint8_t> & Color)

    Takes a tuple of uint8_ts representing a color in RGB and converts them to

    HSV represented by a tuple of doubles

    Defined at line 83 of file llvm/tools/llvm-xray/xray-color-helper.cpp

  • error_code getHostID (SmallVectorImpl<char> & HostID)

    Defined at line 83 of file llvm/lib/Support/LockFileManager.cpp

  • void GetObjCImageInfo (Module & M, unsigned int & Version, unsigned int & Flags, StringRef & Section)

    Defined at line 83 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • size_t llvm_regerror (int , const llvm_regex_t * , char * , size_t )

    - llvm_regerror - the interface to error numbers

    = extern size_t llvm_regerror(int, const llvm_regex_t *, char *, size_t);

    ARGSUSED

    Defined at line 83 of file llvm/lib/Support/regerror.c

  • bool isBlockValidForExtraction (const BasicBlock & BB, const SetVector<BasicBlock *> & Result, bool AllowVarArgs, bool AllowAlloca)

    Test whether a block is valid for extraction.

    Defined at line 83 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • void ConnectProlog (Loop * L, Value * BECount, unsigned int Count, BasicBlock * PrologExit, BasicBlock * OriginalLoopLatchExit, BasicBlock * PreHeader, BasicBlock * NewPreHeader, ValueToValueMapTy & VMap, DominatorTree * DT, LoopInfo * LI, bool PreserveLCSSA, ScalarEvolution & SE)

    Connect the unrolling prolog code to the original loop.

    The unrolling prolog code contains code to execute the

    'extra' iterations if the run-time trip count modulo the

    unroll count is non-zero.

    This function performs the following:

    - Create PHI nodes at prolog end block to combine values

    that exit the prolog code and jump around the prolog.

    - Add a PHI operand to a PHI node at the loop exit block

    for values that exit the prolog and go around the loop.

    - Branch around the original loop if the trip count is less

    than the unroll factor.

    Defined at line 83 of file llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp

  • void initializeFinalizeISelPassOnce (PassRegistry & Registry)

    Defined at line 84 of file llvm/lib/CodeGen/FinalizeISel.cpp

  • basic_string gtest_DirectiveNameParserTestTokenize_EvalGenerateName_ (const ::testing::TestParamInfo<Tokenize::ParamType> & info)

    Defined at line 84 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • ParamGenerator gtest_DirectiveNameParserTestTokenize_EvalGenerator_ ()

    Defined at line 84 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • basic_string gtest_ModuleUtilsTestCtorsModuleUtilsTest_EvalGenerateName_ (const ::testing::TestParamInfo<ModuleUtilsTest::ParamType> & info)

    Defined at line 84 of file llvm/unittests/Transforms/Utils/ModuleUtilsTest.cpp

  • ParamGenerator gtest_ModuleUtilsTestCtorsModuleUtilsTest_EvalGenerator_ ()

    Defined at line 84 of file llvm/unittests/Transforms/Utils/ModuleUtilsTest.cpp

  • bool isValidRegUse (const MachineOperand & MO)

    Defined at line 84 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp

  • uint32_t LLVMRemarkDebugLocGetSourceColumn (LLVMRemarkDebugLocRef DL)

    Return the column in the source file for a debug location.

    Defined at line 84 of file llvm/lib/Remarks/Remark.cpp

  • char * LLVMCreateMessage (const char * Message)

    ===-- Error handling ----------------------------------------------------===

    Defined at line 84 of file llvm/lib/IR/Core.cpp

  • Error reportError (StringRef Message)

    Defined at line 84 of file llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp

  • void exitWithErrorCode (error_code EC, StringRef Whence)

    Defined at line 84 of file llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp

  • Error createCorruptObjectError (Expected ID)

    Defined at line 84 of file llvm/lib/CAS/OnDiskGraphDB.cpp

  • DebugLoc findDebugLoc (const MachineBasicBlock & MBB)

    Defined at line 84 of file llvm/lib/Target/X86/X86WinEHUnwindV2.cpp

  • Error checkHashHdrVersion (const GSIHashHeader * HashHdr)

    Defined at line 84 of file llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp

  • void eliminateDeadCode (Function & F)

    Defined at line 84 of file llvm/lib/FuzzMutate/IRMutator.cpp

  • basic_string generateBBWalkIR (unsigned int Size)

    Defined at line 84 of file llvm/benchmarks/SandboxIRBench.cpp

  • xmlNodePtr getChildWithName (xmlNodePtr Parent, const unsigned char * ElementName)

    Defined at line 84 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • template <typename T>
    Expected<T> getStructOrErr (const MachOObjectFile & O, const char * P)

    Defined at line 84 of file llvm/lib/Object/MachOObjectFile.cpp

  • void llvm_blake3_compress_in_place_portable (uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags)

    Declarations for implementation-specific functions.

    Defined at line 84 of file llvm/lib/Support/BLAKE3/blake3_portable.c

  • Triple GetTriple (StringRef ProgName, opt::InputArgList & Args)

    Defined at line 84 of file llvm/tools/llvm-ml/llvm-ml.cpp

  • Error registerSymbol (LinkGraph & G, Symbol & Sym, Session::FileInfo & FI, SectionType SecType)

    Defined at line 84 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp

  • bool checkSafeInstruction (const Instruction & I, const CmpInst * InnerLoopGuardCmp, const CmpInst * OuterLoopLatchCmp, optional OuterLoopLB)

    Defined at line 84 of file llvm/lib/Analysis/LoopNestAnalysis.cpp

  • std::optional<APInt> extractConstantBits (const Constant * C)

    Attempt to extract the full width of bits data from the constant.

    Defined at line 84 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • void initializeX86ExpandPseudoPassOnce (PassRegistry & Registry)

    Defined at line 85 of file llvm/lib/Target/X86/X86ExpandPseudo.cpp

  • bool hasForceAttributes ()

    Defined at line 85 of file llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp

  • bool shouldHaveDiscriminator (const Instruction * I)

    Defined at line 85 of file llvm/lib/Transforms/Utils/AddDiscriminators.cpp

  • ArrayRef<MCPhysReg> CC_X86_64_VectorCallGetGPRs ()

    Defined at line 85 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • Cursor skipWhitespace (Cursor C)

    Skip the leading whitespace characters and return the updated cursor.

    Defined at line 85 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void warnAboutLeftoverTransformations (Function * F, LoopInfo * LI, OptimizationRemarkEmitter * ORE)

    Defined at line 85 of file llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp

  • void error (Error EC)

    Defined at line 85 of file llvm/tools/llvm-cvtres/llvm-cvtres.cpp

  • MachineFunction * getMFFromMMI (const Module * M, const MachineModuleInfo * MMI)

    Defined at line 85 of file llvm/unittests/CodeGen/GlobalISel/GISelMITest.h

  • void printError (const ErrorInfoBase & EI, StringRef AuxInfo)

    Defined at line 85 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • bool setMemoryEffects (Function & F, MemoryEffectsBase ME)

    Defined at line 85 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • basic_string formatCompileSym3Flags (uint32_t IndentLevel, CompileSym3Flags Flags)

    Defined at line 85 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • bool UpdatedOnX86AvoidTrailingCallPass (MachineFunction & MF)

    Defined at line 85 of file llvm/lib/Target/X86/X86AvoidTrailingCall.cpp

  • bool reduceDbgValsForwardScan (MachineBasicBlock & MBB)

    This analysis aims to remove redundant DBG_VALUEs by going forward

    in the basic block by considering the first DBG_VALUE as a valid

    until its first (location) operand is not clobbered/modified.

    For example:

    (1) DBG_VALUE $edi, !"var1", ...

    (2)

    <block

    of code that does affect $edi>

    (3) DBG_VALUE $edi, !"var1", ...

    ...

    in this case, we can remove (3).

    TODO: Support DBG_VALUE_LIST and other debug instructions.

    Defined at line 85 of file llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp

  • bool CompareNumbers (const char *& F1P, const char *& F2P, const char * F1End, const char * F2End, double AbsTolerance, double RelTolerance, std::string * ErrorMsg)

    CompareNumbers - compare two numbers, returning true if they are different.

    Defined at line 85 of file llvm/lib/Support/FileUtilities.cpp

  • void initializeStackMapLivenessPassOnce (PassRegistry & Registry)

    Defined at line 86 of file llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp

  • void LLVMDisposeBinary (LLVMBinaryRef BR)

    Dispose of a binary file.

    The binary file does not own its backing buffer. It is the responsibilty

    of the caller to free it with

    Defined at line 86 of file llvm/lib/Object/Object.cpp

  • Error emptyConstructor (MappedFileRegionArena & )

    Defined at line 86 of file llvm/unittests/CAS/ProgramTest.cpp

  • void printMacroBegin (StringRef Macro, raw_ostream & OS)

    Defined at line 86 of file llvm/utils/TableGen/X86InstrMappingEmitter.cpp

  • void initializeMachineCycleInfoPrinterLegacyPassOnce (PassRegistry & Registry)

    Defined at line 86 of file llvm/lib/CodeGen/MachineCycleAnalysis.cpp

  • Align getAlign (GlobalVariable * GV)

    Defined at line 86 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp

  • basic_string toString (OutputBuffer & OB)

    Defined at line 86 of file llvm/unittests/Demangle/ItaniumDemangleTest.cpp

  • void declareInstExpansion (CodeExpansions & CE, const InstructionMatcher & IM, StringRef Name)

    ===- CodeExpansions Helpers --------------------------------------------===//

    Defined at line 86 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • uint8_t * memAllocate (void * Opaque, uintptr_t Size, unsigned int Align, unsigned int Id, const char * Name)

    Defined at line 86 of file llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c

  • void InsertNewValueIntoMap (ValueToValueMapTy & VM, Value * K, Value * V)

    Insert (K, V) pair into the ValueToValueMap, and verify the key did not

    previously exist in the map, and the value was inserted.

    Defined at line 86 of file llvm/lib/Transforms/Utils/LoopRotationUtils.cpp

  • WrapperFunctionBuffer addMethodWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 86 of file llvm/unittests/ExecutionEngine/Orc/WrapperFunctionUtilsTest.cpp

  • void markSymbols (const CommonConfig & , Object & Obj)

    Defined at line 86 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • uint32_t readUint32 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 86 of file llvm/lib/Object/WasmObjectFile.cpp

  • void initializeLoopExtractorLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 86 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp

  • pair unpackVScaleRangeArgs (uint64_t Value)

    Defined at line 86 of file llvm/lib/IR/Attributes.cpp

  • void addNonNullAttribute (CallBase & CB, Value * Op)

    Defined at line 86 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • double LLVMGenericValueToFloat (LLVMTypeRef TyRef, LLVMGenericValueRef GenVal)

    Defined at line 86 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void suppressEGPRRegClassInRegAndUses (MachineRegisterInfo * MRI, MachineInstr & MI, const X86Subtarget & ST, unsigned int OpNum)

    Suppress EGPR in operand 0 of uses to avoid APX relocation types emitted. The

    register in operand 0 of instruction with relocation may be replaced with

    operand 0 of uses which may be EGPR. That may lead to emit APX relocation

    types which breaks the backward compatibility with builtin linkers on

    existing OS. For example, the register in operand 0 of instruction with

    relocation is used in PHI instruction, and it may be replaced with operand 0

    of PHI instruction after PHI elimination and Machine Copy Propagation pass.

    Defined at line 86 of file llvm/lib/Target/X86/X86SuppressAPXForReloc.cpp

  • void exitWithError (Twine Message, StringRef Whence, StringRef Hint)

    Defined at line 86 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • Error executeObjcopyOnIHex (ConfigManager & ConfigMgr, MemoryBuffer & In, raw_ostream & Out)

    The function executeObjcopyOnIHex does the dispatch based on the format

    of the output specified by the command line options.

    Defined at line 86 of file llvm/tools/llvm-objcopy/llvm-objcopy.cpp

  • void addAllGlobalValueUsers (ClusterMapType & GVtoClusterMap, const GlobalValue * GV, const Value * V)

    Adds all GlobalValue users of V to the same cluster as GV.

    Defined at line 86 of file llvm/lib/Transforms/Utils/SplitModule.cpp

  • template <class T>
    bool forEachCall (Function & Intrin, T Callback)

    Defined at line 86 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • void emitXATTR (raw_ostream & OS, StringRef Name, ESDLinkageType Linkage, ESDExecutable Executable, ESDBindingScope BindingScope)

    Defined at line 86 of file llvm/lib/MC/MCAsmInfoGOFF.cpp

  • const Value * FindSingleUseIdentifiedObject (const Value * Arg)

    This is similar to GetRCIdentityRoot but it stops as soon

    as it finds a value with multiple uses.

    Defined at line 86 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • bool rescheduleLexographically (int instructions, MachineBasicBlock * MBB, int getPos)

    Defined at line 86 of file llvm/lib/CodeGen/MIRCanonicalizerPass.cpp

  • DWARFDie GetParentDeclContextDIE (DWARFDie & Die)

    Defined at line 86 of file llvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp

  • void parseArgs (int argc, char ** argv)

    Defined at line 86 of file llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp

  • void calcPredicateUsingInteger (ArrayRef Branches, ArrayRef Outgoing, ArrayRef GuardBlocks, BBPredicates & GuardPredicates)

    Assign an index to each outgoing block. At the corresponding guard

    block, compute the branch condition by comparing this index.

    Defined at line 86 of file llvm/lib/Transforms/Utils/ControlFlowUtils.cpp

  • void lowerAwaitSuspend (int & Builder, CoroAwaitSuspendInst * CB, coro::Shape & Shape)

    FIXME:

    Lower the intrinisc in CoroEarly phase if coroutine frame doesn't escape

    and it is known that other transformations, for example, sanitizers

    won't lead to incorrect code.

    Defined at line 86 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool inheritsFrom (InstructionContext child, InstructionContext parent, bool noPrefix, bool VEX_LIG, bool WIG, bool AdSize64)

    inheritsFrom - Indicates whether all instructions in one class also belong

    to another class.

    Parameters

    child - The class that may be the subset
    parent - The class that may be the superset

    Returns

    - True if child is a subset of parent, false otherwise.

    Defined at line 86 of file llvm/utils/TableGen/X86DisassemblerTables.cpp

  • unsigned int littleEndianByteAt (const unsigned int ByteWidth, const unsigned int I)

    E.g. Given a 4-byte type x, x[0] -> byte 0

    Defined at line 87 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • void initializeRegUsageInfoPropagationLegacyPassOnce (PassRegistry & Registry)

    Defined at line 87 of file llvm/lib/CodeGen/RegUsageInfoPropagate.cpp

  • bool isMemoryInst (const Instruction * I)

    Defined at line 87 of file llvm/lib/Transforms/Scalar/GVNSink.cpp

  • int charTailAt (StringPair * P, size_t Pos)

    Returns the character at Pos from end of a string.

    Defined at line 87 of file llvm/lib/MC/StringTableBuilder.cpp

  • uint64_t mergeRound (uint64_t Acc, uint64_t Val)

    Defined at line 87 of file llvm/lib/Support/xxhash.cpp

  • void fixupPHINodeForUnwindDest (InvokeInst * Invoke, BasicBlock * OrigBlock, BasicBlock * ThenBlock, BasicBlock * ElseBlock)

    Fix-up phi nodes in an invoke instruction's unwind destination.

    After versioning an invoke instruction, values coming from the original

    block will now be coming from either the "then" block or the "else" block.

    For example, in the code below:

    then_bb:

    %t0 = invoke i32 %ptr() to label %merge_bb unwind label %unwind_dst

    else_bb:

    %t1 = invoke i32 %ptr() to label %merge_bb unwind label %unwind_dst

    unwind_dst:

    %t3 = phi i32 [ %x, %orig_bb ], ...

    "orig_bb" is no longer a predecessor of "unwind_dst", so the phi nodes in

    "unwind_dst" must be fixed to refer to "then_bb" and "else_bb":

    unwind_dst:

    %t3 = phi i32 [ %x, %then_bb ], [ %x, %else_bb ], ...

    Defined at line 87 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • template <typename Callable>
    bool foreachUnit (const TargetRegisterInfo * TRI, const LiveInterval & VRegInterval, MCRegister PhysReg, Callable Func)

    Defined at line 87 of file llvm/lib/CodeGen/LiveRegMatrix.cpp

  • bool usesExtendedRegister (const MachineInstr & MI)

    Defined at line 87 of file llvm/lib/Target/X86/X86CompressEVEX.cpp

  • Error bundleImages ()

    Defined at line 87 of file llvm/tools/llvm-offload-binary/llvm-offload-binary.cpp

  • Value * getStrlenWithNull (IRBuilder<> & Builder, Value * Str)

    The device library does not provide strlen, so we build our own loop

    here. While we are at it, we also include the terminating null in the length.

    Defined at line 87 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • LLVMTypeRef LLVMIntPtrTypeInContext (LLVMContextRef C, LLVMTargetDataRef TD)

    Returns the integer type that is the same size as a pointer on a target.

    See the method llvm::DataLayout::getIntPtrType.

    Defined at line 88 of file llvm/lib/Target/Target.cpp

  • void LLVMDisposeMessage (char * Message)

    Defined at line 88 of file llvm/lib/IR/Core.cpp

  • SDVTList makeVTList (const EVT * VTs, unsigned int NumVTs)

    makeVTList - Return an instance of the SDVTList struct initialized with the

    specified members.

    Defined at line 88 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void LLVMInitializeAllTargets ()

    LLVMInitializeAllTargets - The main program should call this function if it

    wants to link in all available targets that LLVM is configured to

    support.

    Defined at line 88 of file llvm/include/llvm-c/Target.h

  • void LLVMInitializeAllTargets ()

    LLVMInitializeAllTargets - The main program should call this function if it

    wants to link in all available targets that LLVM is configured to

    support.

    Defined at line 88 of file llvm/include/llvm-c/Target.h

  • void addBlockLiveIns (LiveRegUnits & LiveUnits, const MachineBasicBlock & MBB)

    Add live-in registers of basic block

    to

    Defined at line 88 of file llvm/lib/CodeGen/LiveRegUnits.cpp

  • bool isValidRegUseOf (const MachineOperand & MO, Register Reg, const TargetRegisterInfo * TRI)

    Defined at line 88 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp

  • void PrintLoadStoreResults (AliasResult AR, bool P, const Value * V1, const Value * V2, const Module * M)

    Defined at line 88 of file llvm/lib/Analysis/AliasAnalysisEvaluator.cpp

  • void output_chaining_value (const output_t * self, uint8_t[32] cv)

    Chaining values within a given chunk (specifically the compress_in_place

    interface) are represented as words. This avoids unnecessary bytes

    <

    ->words

    conversion overhead in the portable implementation. However, the hash_many

    interface handles both user input and parent node blocks, so it accepts

    bytes. For that reason, chaining values in the CV stack are represented as

    bytes.

    Defined at line 88 of file llvm/lib/Support/BLAKE3/blake3.c

  • bool getWindows10SDKVersionFromPath (llvm::vfs::FileSystem & VFS, const std::string & SDKPath, std::string & SDKVersion)

    Defined at line 88 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • Expected parseStrTabSize (StringRef & Buf)

    Defined at line 88 of file llvm/lib/Remarks/YAMLRemarkParser.cpp

  • void computeChecksum (UstarHeader & Hdr)

    Computes a checksum for a tar header.

    Defined at line 88 of file llvm/lib/Support/TarWriter.cpp

  • Expected openBitcodeFile (StringRef Path)

    Defined at line 88 of file llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp

  • void PrintCases (int & OpsToPrint, raw_ostream & O, bool PassSubtarget)

    Defined at line 88 of file llvm/utils/TableGen/AsmWriterEmitter.cpp

  • void remapSymbols (MemoryBuffer & OldSymbolFile, MemoryBuffer & NewSymbolFile, MemoryBuffer & RemappingFile, raw_ostream & Out)

    Defined at line 88 of file llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp

  • optional GetCodeName (unsigned int CodeID, unsigned int BlockID, const BitstreamBlockInfo & BlockInfo, CurStreamTypeType CurStreamType)

    Return a symbolic code name if known, otherwise return null.

    Defined at line 88 of file llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp

  • void initializeResetMachineFunctionPassOnce (PassRegistry & Registry)

    Defined at line 89 of file llvm/lib/CodeGen/ResetMachineFunctionPass.cpp

  • LLVMRemarkStringRef LLVMRemarkArgGetKey (LLVMRemarkArgRef Arg)

    Returns the key of an argument. The key defines what the value is, and the

    same key can appear multiple times in the list of arguments.

    Defined at line 89 of file llvm/lib/Remarks/Remark.cpp

  • void defaultMemMgrSetup (MockJITLinkMemoryManager & )

    Defined at line 89 of file llvm/unittests/ExecutionEngine/JITLink/JITLinkTestUtils.cpp

  • Error getStringError (const Twine & message)

    Defined at line 89 of file llvm/tools/llvm-rc/ResourceScriptToken.cpp

  • bool isConflictIP (int IP1, int IP2)

    Return whether IP1 and IP2 are ambiguous, i.e. that inserting instructions

    at position IP1 may change the meaning of IP2 or vice-versa. This is because

    an InsertPoint stores the instruction before something is inserted. For

    instance, if both point to the same instruction, two IRBuilders alternating

    creating instruction will cause the instructions to be interleaved.

    Defined at line 89 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • size_t getLongestEntryLength (ArrayRef Table)

    Return the length of the longest entry in the table.

    Defined at line 89 of file llvm/lib/MC/MCSubtargetInfo.cpp

  • bool operandReferences (CallInst * CI, AllocaInst * Frame, AAResults & AA)

    See if any operand of the call instruction references the coroutine frame.

    Defined at line 89 of file llvm/lib/Transforms/Coroutines/CoroElide.cpp

  • template <typename T, typename TEnum>
    void printOptionalEnumName (T Value, ArrayRef<EnumEntry<TEnum>> EnumValues)

    Defined at line 89 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • bool IsCallReturnTwice (llvm::MachineOperand & MOp)

    Defined at line 89 of file llvm/lib/Target/X86/X86IndirectBranchTracking.cpp

  • StringRef GetIntrinsicName (const RecordVal * RV)

    Take a `int_{intrinsic_name}` and return just the intrinsic_name part if

    available. Otherwise return the empty string.

    Defined at line 89 of file llvm/utils/TableGen/DXILEmitter.cpp

  • template <typename T>
    void write_signed (raw_ostream & S, T N, size_t MinDigits, IntegerStyle Style)

    Defined at line 89 of file llvm/lib/Support/NativeFormatting.cpp

  • StringRef convertZlibCodeToString (int Code)

    Defined at line 89 of file llvm/lib/Support/Compression.cpp

  • bool eliminateDeadCode (Function & F, TargetLibraryInfo * TLI)

    Defined at line 89 of file llvm/lib/Transforms/Scalar/DCE.cpp

  • void generateEnumClass (ArrayRef Records, raw_ostream & OS, StringRef Enum, StringRef Prefix, bool ExportEnums)

    Generate enum class. Entries are emitted in the order in which they appear

    in the `Records` vector.

    Defined at line 89 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • const X86FoldTableEntry * lookupFoldTableImpl (ArrayRef<X86FoldTableEntry> Table, unsigned int RegOp)

    Defined at line 89 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp

  • bool inferAlignment (Function & F, AssumptionCache & AC, DominatorTree & DT)

    Defined at line 89 of file llvm/lib/Transforms/Scalar/InferAlignment.cpp

  • bool performBlockTailMerging (Function & F, ArrayRef BBs, std::vector<DominatorTree::UpdateType> * Updates)

    Defined at line 89 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  • basic_string explainPredicates (const TreePatternNode & N)

    Defined at line 89 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • void printMacroEnd (StringRef Macro, raw_ostream & OS)

    Defined at line 90 of file llvm/utils/TableGen/X86InstrMappingEmitter.cpp

  • MDNode * getUnrollMetadataForLoop (const Loop * L, StringRef Name)

    Returns the loop hint metadata node with the given name (for example,

    "llvm.loop.unroll.count"). If no such metadata node exists, then nullptr is

    returned.

    Defined at line 90 of file llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp

  • DebugLoc getDebugLoc (int FirstMI, int LastMI)

    Return the first DebugLoc that has line number information, given a

    range of instructions. The search range is from FirstMI to LastMI

    (exclusive). Otherwise return the first DILocation or an empty location if

    there are none.

    Defined at line 90 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • Error validatePdbMagic (StringRef PdbPath)

    Defined at line 90 of file llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp

  • void saveTempBitcode (const Module & TheModule, StringRef TempDir, unsigned int count, StringRef Suffix)

    Simple helper to save temporary files for debug.

    Defined at line 90 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • TargetCostKind OutputCostKindToTargetCostKind (OutputCostKind CostKind)

    Defined at line 90 of file llvm/lib/Analysis/CostModel.cpp

  • Loop * getInnermostLoopFor (SmallPtrSetImpl<BasicBlock *> & BBs, Loop & L, LoopInfo & LI)

    Find innermost loop that contains at least one block from

    and

    contains the header of loop

    Defined at line 90 of file llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp

  • bool testAttributeString (unsigned int Tag, const char * Value, unsigned int ExpectedTag, const char * ExpectedValue)

    Defined at line 90 of file llvm/unittests/Support/CSKYAttributeParserTest.cpp

  • int createDependencyFile (const TGParser & Parser, const char * argv0)

    Create a dependency file for `-d` option.

    This functionality is really only for the benefit of the build system.

    It is similar to GCC's `-M*` family of options.

    Defined at line 90 of file llvm/lib/TableGen/Main.cpp

  • template <class Size_T>
    size_t getNewCapacity (size_t MinSize, size_t TSize, size_t OldCapacity)

    Note: Moving this function into the header may cause performance regression.

    Defined at line 90 of file llvm/lib/Support/SmallVector.cpp

  • const char * getPropertyName (Property Prop)

    Defined at line 90 of file llvm/lib/CodeGen/MachineFunction.cpp

  • bool RedirectIO (optional Path, int FD, std::string * ErrMsg)

    Defined at line 90 of file llvm/lib/Support/Unix/Program.inc

  • bool CC_X86_VectorCallAssignRegister (unsigned int & ValNo, MVT & ValVT, MVT & LocVT, CCValAssign::LocInfo & LocInfo, ISD::ArgFlagsTy & ArgFlags, CCState & State)

    Defined at line 90 of file llvm/lib/Target/X86/X86CallingConv.cpp

  •  LLVMBinaryGetType (LLVMBinaryRef BR)

    Retrieve the specific type of a binary.

    Defined at line 90 of file llvm/lib/Object/Object.cpp

  • void defaultCtxSetup (MockJITLinkContext & )

    Defined at line 90 of file llvm/unittests/ExecutionEngine/JITLink/JITLinkTestUtils.cpp

  • template <typename Enumerator>
    vector filterAndSortClassDefs (LinePrinter & Printer, Enumerator & E, uint32_t UnfilteredCount)

    Defined at line 90 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • void opportunities (Function & F, function_ref Callback)

    Calls

    for every reduction opportunity in

    Used by

    countOperands() and extractOperandsFromModule() to ensure consistency

    between the two.

    Defined at line 90 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsSkip.cpp

  • Constant * getFalse (Type * Ty)

    For a boolean type or a vector of boolean type, return false or a vector

    with every element false.

    Defined at line 91 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isNewlineChar (char C)

    Defined at line 91 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void initializeStaticDataAnnotatorPassOnce (PassRegistry & Registry)

    Defined at line 91 of file llvm/lib/CodeGen/StaticDataAnnotator.cpp

  • void initializeFixupStatepointCallerSavedLegacyPassOnce (PassRegistry & Registry)

    Defined at line 91 of file llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp

  • bool operationsAreFoldableAndCommutative (LocationAtom Operator1, LocationAtom Operator2)

    Returns true if the two operations

    and

    are

    commutative and can be folded.

    Defined at line 91 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • std::array<CallbackAndCookie, MaxSignalHandlerCallbacks> & CallBacksToRun ()

    A global array of CallbackAndCookie may not compile with

    -Werror=global-constructors in c++20 and above

    Defined at line 91 of file llvm/lib/Support/Signals.cpp

  • int writeUint64 (raw_ostream & OS, uint64_t Value)

    Defined at line 91 of file llvm/lib/ObjectYAML/WasmEmitter.cpp

  • void declareInstExpansion (CodeExpansions & CE, const BuildMIAction & A, StringRef Name)

    Defined at line 91 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • void reportError (StringRef Input, Error Err)

    Defined at line 91 of file llvm/tools/obj2yaml/obj2yaml.cpp

  • bool isUnmergeableGlobal (GlobalVariable * GV, const SmallPtrSetImpl<const GlobalValue *> & UsedGlobals)

    Defined at line 91 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp

  • void makeAbsolute (vfs::FileSystem & VFS, SmallVectorImpl<char> & Path)

    Make Path absolute.

    Defined at line 91 of file llvm/lib/Support/FileCollector.cpp

  • void dumpLocationExpr (raw_ostream & OS, const DWARFFormValue & FormValue, DWARFUnit * U, unsigned int Indent, DIDumpOptions DumpOpts)

    Defined at line 91 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • uint64_t getSectionFlagsPreserveMask (uint64_t OldFlags, uint64_t NewFlags, uint16_t EMachine)

    Defined at line 91 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • void StripTypeNames (Module & M, bool PreserveDbgInfo)

    Strip any named types of their names.

    Defined at line 91 of file llvm/lib/Transforms/IPO/StripSymbols.cpp

  • bool isCallableFunction (const MachineFunction & MF)

    Return true if it is useful to track the used registers for IPRA / no CSR

    optimizations. This is not useful for entry points, and computing the

    register usage information is expensive.

    Defined at line 91 of file llvm/lib/CodeGen/RegUsageInfoCollector.cpp

  • int64_t getDynAllocaAmount (MachineInstr * MI, MachineRegisterInfo * MRI)

    Return the allocation amount for a DynAlloca instruction, or -1 if unknown.

    Defined at line 91 of file llvm/lib/Target/X86/X86DynAllocaExpander.cpp

  • OptimizationRemarkAnalysis createHWLoopAnalysis (StringRef RemarkName, Loop * L, Instruction * I)

    Defined at line 91 of file llvm/lib/CodeGen/HardwareLoops.cpp

  • void strings (raw_ostream & OS, StringRef FileName, StringRef Contents)

    Defined at line 91 of file llvm/tools/llvm-strings/llvm-strings.cpp

  • void initializeGCEmptyBasicBlocksPassOnce (PassRegistry & Registry)

    Defined at line 92 of file llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp

  • LLVMTypeRef LLVMIntPtrTypeForASInContext (LLVMContextRef C, LLVMTargetDataRef TD, unsigned int AS)

    Returns the integer type that is the same size as a pointer on a target.

    This version allows the address space to be specified.

    See the method llvm::DataLayout::getIntPtrType.

    Defined at line 92 of file llvm/lib/Target/Target.cpp

  • bool isHeaderBB (BasicBlock * BB, Loop * L)

    Defined at line 92 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • Constant * getSafeDivisor (Type * DivTy)

    Defined at line 92 of file llvm/lib/CodeGen/ExpandVectorPredication.cpp

  • void initializeIndirectBrExpandLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 92 of file llvm/lib/CodeGen/IndirectBrExpandPass.cpp

  • uint8_t * memAllocateData (void * Opaque, uintptr_t Size, unsigned int Align, unsigned int Id, const char * Name, LLVMBool ReadOnly)

    Defined at line 92 of file llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c

  • uint32_t getTime ()

    Defined at line 92 of file llvm/tools/llvm-cvtres/llvm-cvtres.cpp

  • void setDescendantEHBlocksCold (MachineFunction & MF)

    setDescendantEHBlocksCold - This splits all EH pads and blocks reachable

    only by EH pad as cold. This will help mark EH pads statically cold

    instead of relying on profile data.

    Defined at line 92 of file llvm/lib/CodeGen/MachineFunctionSplitter.cpp

  • void collectCopies (SmallVectorImpl<Register> & Copies, MachineFunction * MF)

    Defined at line 92 of file llvm/unittests/CodeGen/GlobalISel/GISelMITest.h

  • void printInstructionInformation (const FileAnalysis & Analysis, const Instr & InstrMeta, const GraphResult & Graph, CFIProtectionStatus ProtectionStatus)

    Defined at line 92 of file llvm/tools/llvm-cfi-verify/llvm-cfi-verify.cpp

  • pair splitLiteralAndReplacement (StringRef Fmt)

    Defined at line 92 of file llvm/lib/Support/FormatVariadic.cpp

  • void initializeCFIFixupPassOnce (PassRegistry & Registry)

    Defined at line 93 of file llvm/lib/CodeGen/CFIFixup.cpp

  • LLVMRemarkStringRef LLVMRemarkArgGetValue (LLVMRemarkArgRef Arg)

    Returns the value of an argument. This is a string that can contain newlines.

    Defined at line 93 of file llvm/lib/Remarks/Remark.cpp

  • bool isAsmComment (const char * Str, const MCAsmInfo & MAI)

    Defined at line 93 of file llvm/lib/CodeGen/TargetInstrInfo.cpp

  • bool operator== (const MergedFunctionsInfo & LHS, const MergedFunctionsInfo & RHS)

    Defined at line 93 of file llvm/lib/DebugInfo/GSYM/MergedFunctionsInfo.cpp

  • uint64_t getCIEId (bool IsDWARF64, bool IsEH)

    Returns the CIE identifier to be used by the requested format.

    CIE ids for .debug_frame sections are defined in Section 7.24 of DWARFv5.

    For CIE ID in .eh_frame sections see

    https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html

    Defined at line 93 of file llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp

  • void emitConstantPool (MCStreamer & Streamer, MCSection * Section, ConstantPool & CP)

    Defined at line 93 of file llvm/lib/MC/ConstantPools.cpp

  • bool domTreeLevelBefore (DominatorTree * DT, const Instruction * InstA, const Instruction * InstB)

    Defined at line 93 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp

  • Error readGSIHashHeader (const GSIHashHeader *& HashHdr, BinaryStreamReader & Reader)

    Defined at line 93 of file llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp

  • void rewriteComdat (Module & M, GlobalObject * GO, const std::string & Source, const std::string & Target)

    Defined at line 93 of file llvm/lib/Transforms/Utils/SymbolRewriter.cpp

  • bool isConstantIntVector (Value * Mask)

    Defined at line 93 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • bool isCodeViewDebugSubsection (SectionRef Section, StringRef Name, BinaryStreamReader & Reader)

    Defined at line 93 of file llvm/lib/DebugInfo/PDB/Native/InputFile.cpp

  • void restoreSSA (const DominatorTree & DT, const Loop * L, SmallVectorImpl<BasicBlock *> & Incoming, BasicBlock * LoopExitBlock)

    The current transform introduces new control flow paths which may break the

    SSA requirement that every def must dominate all its uses. For example,

    consider a value D defined inside the loop that is used by some instruction

    U outside the loop. It follows that D dominates U, since the original

    program has valid SSA form. After merging the exits, all paths from D to U

    now flow through the unified exit block. In addition, there may be other

    paths that do not pass through D, but now reach the unified exit

    block. Thus, D no longer dominates U.

    Restore the dominance by creating a phi for each such D at the new unified

    loop exit. But when doing this, ignore any uses U that are in the new unified

    loop exit, since those were introduced specially when the block was created.

    The use of SSAUpdater seems like overkill for this operation. The location

    for creating the new PHI is well-known, and also the set of incoming blocks

    to the new PHI.

    Defined at line 93 of file llvm/lib/Transforms/Utils/UnifyLoopExits.cpp

  • Expected getCUIdentifiers (InfoSectionUnitHeader & Header, StringRef Abbrev, StringRef Info, StringRef StrOffsets, StringRef Str)

    Defined at line 93 of file llvm/lib/DWP/DWP.cpp

  • void updateAndRemoveSymbols (const CommonConfig & Config, const MachOConfig & MachOConfig, Object & Obj)

    Defined at line 93 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • void initializeMachineDominatorTreeWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 94 of file llvm/lib/CodeGen/MachineDominators.cpp

  • void initializeMachineLateInstrsCleanupLegacyPassOnce (PassRegistry & Registry)

    Defined at line 94 of file llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp

  • void initializeDAEPassOnce (PassRegistry & Registry)

    Defined at line 94 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp

  • bool setOnlyAccessesInaccessibleMemory (Function & F)

    Defined at line 94 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Register buildLogBase2 (Register V, MachineIRBuilder & MIB)

    Determines the LogBase2 value for a non-null input value using the

    transform: LogBase2(V) = (EltBits - 1) - ctlz(V).

    Defined at line 94 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • Cursor skipComment (Cursor C)

    Skip a line comment and return the updated cursor.

    Defined at line 94 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • int32_t readFloat32 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 94 of file llvm/lib/Object/WasmObjectFile.cpp

  • uint64_t XXH64_avalanche (uint64_t hash)

    Defined at line 94 of file llvm/lib/Support/xxhash.cpp

  • basic_string modifierOptions (ModifierOptions Options)

    Defined at line 94 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • xmlAttrPtr getAttribute (xmlNodePtr Node, const unsigned char * AttributeName)

    Defined at line 94 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • template <typename KeyTy>
    void RemoveFromReverseMap (int & ReverseMap, Instruction * Inst, KeyTy Val)

    This is a helper function that removes Val from 'Inst's set in ReverseMap.

    If the set becomes empty, remove Inst's entry.

    Defined at line 94 of file llvm/lib/Analysis/MemoryDependenceAnalysis.cpp

  • const CodeGenInstruction & getInstrForIntrinsic (const CodeGenTarget & CGT, const CodeGenIntrinsic * I)

    Defined at line 94 of file llvm/utils/TableGen/Common/GlobalISel/PatternParser.cpp

  • void emitMisexpectDiagnostic (const Instruction * I, LLVMContext & Ctx, uint64_t ProfCount, uint64_t TotalCount)

    Defined at line 94 of file llvm/lib/Transforms/Utils/MisExpect.cpp

  • void runAllDeltaPasses (TestRunner & Tester, const SmallStringSet & SkipPass)

    Defined at line 94 of file llvm/tools/llvm-reduce/DeltaManager.cpp

  • basic_string formatSymbol (StringRef Name, uint64_t Address, uint64_t Offset)

    Defined at line 94 of file llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp

  • template <typename T>
    void print (const Request & Request, Expected<T> & ResOrErr, DIPrinter & Printer)

    Defined at line 94 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • template <IR IRTy>
    void SBoxIRCreation (benchmark::State & State)

    Defined at line 94 of file llvm/benchmarks/SandboxIRBench.cpp

  • Constant * getTrue (Type * Ty)

    For a boolean type or a vector of boolean type, return true or a vector

    with every element true.

    Defined at line 95 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void initializeLowerAtomicLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 95 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp

  • bool isValidRegDef (const MachineOperand & MO)

    Defined at line 95 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp

  • bool shouldRemoveArguments (const Function & F)

    Returns whether or not this function should be considered a candidate for

    argument removal. Currently, functions with no arguments and intrinsics are

    not considered. Intrinsics aren't considered because their signatures are

    fixed.

    Defined at line 95 of file llvm/tools/llvm-reduce/deltas/ReduceArguments.cpp

  • LLVMContext & getGlobalContext ()

    ===-- Operations on contexts --------------------------------------------===

    Defined at line 95 of file llvm/lib/IR/Core.cpp

  • void addBlockLiveOuts (LiveRegUnits & LiveUnits, const MachineBasicBlock & MBB)

    Add live-out registers of basic block

    to

    Defined at line 95 of file llvm/lib/CodeGen/LiveRegUnits.cpp

  • bool containsAMXCode (Function & F)

    Defined at line 95 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • uint32_t handleBaseClass (ArrayRef Data, uint32_t Offset, SmallVectorImpl<TiReference> & Refs)

    Defined at line 95 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • void setCondition (Instruction * I, Value * NewCond)

    Set the condition for

    to

    can either be a guard or a

    conditional branch.

    Defined at line 95 of file llvm/lib/Transforms/Scalar/GuardWidening.cpp

  • void setConstantInArgument (CallBase & CB, Value * Op, Constant * ConstValue)

    Defined at line 95 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • bool ByteArrayFromString (ByteArrayTy & ByteArray, StringRef & Str, SourceMgr & SM)

    Defined at line 95 of file llvm/tools/llvm-ml/Disassembler.cpp

  • Error readBinaryIdsInternal (const MemoryBuffer & DataBuffer, ArrayRef BinaryIdsBuffer, std::vector<llvm::object::BuildID> & BinaryIds, endianness Endian)

    Read a list of binary ids from a profile that consist of

    a. uint64_t binary id length

    b. uint8_t binary id data

    c. uint8_t padding (if necessary)

    This function is shared between raw and indexed profiles.

    Raw profiles are in host-endian format, and indexed profiles are in

    little-endian format. So, this function takes an argument indicating the

    associated endian format to read the binary ids correctly.

    Defined at line 95 of file llvm/lib/ProfileData/InstrProfReader.cpp

  • void RewriteUsesOfClonedInstructions (BasicBlock * OrigHeader, BasicBlock * OrigPreheader, ValueToValueMapTy & ValueMap, ScalarEvolution * SE, SmallVectorImpl<PHINode *> * InsertedPHIs)

    RewriteUsesOfClonedInstructions - We just cloned the instructions from the

    old header into the preheader. If there were uses of the values produced by

    these instruction that were outside of the loop, we have to insert PHI nodes

    to merge the two values. Do this now.

    Defined at line 95 of file llvm/lib/Transforms/Utils/LoopRotationUtils.cpp

  • unsigned long long LLVMSizeOfTypeInBits (LLVMTargetDataRef TD, LLVMTypeRef Ty)

    Computes the size of a type in bits for a target.

    See the method llvm::DataLayout::getTypeSizeInBits.

    Defined at line 96 of file llvm/lib/Target/Target.cpp

  • void initializeX86FastPreTileConfigPassOnce (PassRegistry & Registry)

    Defined at line 96 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp

  • void addLoopIntoQueue (Loop * L, std::deque<Loop *> & LQ)

    Recurse through all subloops and all loops into LQ.

    Defined at line 96 of file llvm/lib/Analysis/LoopPass.cpp

  • size_t getLongestEntryLength (ArrayRef Table)

    Defined at line 96 of file llvm/lib/MC/MCSubtargetInfo.cpp

  • const Function * findCalledFunction (const Module & M, const MachineInstr & MI)

    Assumes call instructions have a single reference to a function.

    Defined at line 96 of file llvm/lib/CodeGen/RegUsageInfoPropagate.cpp

  • basic_string percentDecode (StringRef Content)

    Decodes a string according to percent-encoding.

    Defined at line 96 of file llvm/lib/Support/LSP/Protocol.cpp

  • const char * getSectionPtr (const MachOObjectFile & O, LoadCommandInfo L, unsigned int Sec)

    Defined at line 96 of file llvm/lib/Object/MachOObjectFile.cpp

  • Constant * getConstantAt (Value * V, Instruction * At, LazyValueInfo * LVI)

    Defined at line 96 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void checkConcrete (Record & R)

    Defined at line 96 of file llvm/lib/TableGen/TGParser.cpp

  • Expected readData (DataExtractor & Extractor, uint64_t & Offset)

    Defined at line 96 of file llvm/lib/XRay/Profile.cpp

  • void addByteCountSuffix (raw_ostream & OS, const Function * F, const DataLayout & DL)

    Microsoft fastcall and stdcall functions require a suffix on their name

    indicating the number of words of arguments they take.

    Defined at line 96 of file llvm/lib/IR/Mangler.cpp

  • void output_root_bytes (const output_t * self, uint64_t seek, uint8_t * out, size_t out_len)

    Defined at line 96 of file llvm/lib/Support/BLAKE3/blake3.c

  • void multikeySort (MutableArrayRef Vec, int Pos)

    Three-way radix quicksort. This is much faster than std::sort with strcmp

    because it does not compare characters that we already know the same.

    Defined at line 96 of file llvm/lib/MC/StringTableBuilder.cpp

  • int main (int argc, char ** argv)

    Defined at line 96 of file llvm/tools/llvm-undname/llvm-undname.cpp

  • bool isValidWorkshareLoopScheduleType (OMPScheduleType SchedType)

    Defined at line 96 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool bitTrackingDCE (Function & F, DemandedBits & DB)

    Defined at line 96 of file llvm/lib/Transforms/Scalar/BDCE.cpp

  • void initializeX86ReturnThunksPassOnce (PassRegistry & Registry)

    Defined at line 97 of file llvm/lib/Target/X86/X86ReturnThunks.cpp

  • void LLVMDisposeGenericValue (LLVMGenericValueRef GenVal)

    Defined at line 97 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • bool isPrologueCFIInstruction (const MachineInstr & MI)

    Defined at line 97 of file llvm/lib/CodeGen/CFIFixup.cpp

  • void initializeCallBrPreparePassOnce (PassRegistry & Registry)

    Defined at line 97 of file llvm/lib/CodeGen/CallBrPrepare.cpp

  • unsigned int getRegisterSize (const TargetRegisterInfo & TRI, Register Reg)

    Utility function to get size of the register.

    Defined at line 97 of file llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp

  • void LLVMInitializeAllTargetMCs ()

    LLVMInitializeAllTargetMCs - The main program should call this function if

    it wants access to all available target MC that LLVM is configured to

    support.

    Defined at line 97 of file llvm/include/llvm-c/Target.h

  • void LLVMInitializeAllTargetMCs ()

    LLVMInitializeAllTargetMCs - The main program should call this function if

    it wants access to all available target MC that LLVM is configured to

    support.

    Defined at line 97 of file llvm/include/llvm-c/Target.h

  • LLVMRemarkDebugLocRef LLVMRemarkArgGetDebugLoc (LLVMRemarkArgRef Arg)

    Returns the debug location that is attached to the value of this argument.

    If there is no debug location, the return value will be `NULL`.

    Defined at line 97 of file llvm/lib/Remarks/Remark.cpp

  • Type * getPromotedType (Type * Ty)

    Return the specified type promoted as it would be to pass though a va_arg

    area.

    Defined at line 97 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • void exitWithError (Error E, StringRef Whence)

    Defined at line 97 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • unsigned int getNumUsedSlots (const UnwindCode & UnwindCode)

    Calculates the number of array slots required for the unwind code.

    Defined at line 97 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • bool IVUseShouldUsePostIncValue (Instruction * User, Value * Operand, const Loop * L, DominatorTree * DT)

    IVUseShouldUsePostIncValue - We have discovered a "User" of an IV expression

    and now we need to decide whether the user should use the preinc or post-inc

    value. If this user should use the post-inc version of the IV, return true.

    Choosing wrong here can break dominance properties (if we choose to use the

    post-inc value when we cannot) or it can end up adding extra live-ranges to

    the loop, resulting in reg-reg copies (if we use the pre-inc value when we

    should use the post-inc value).

    Defined at line 97 of file llvm/lib/Analysis/IVUsers.cpp

  • bool getWindowsSDKDirViaCommandLine (llvm::vfs::FileSystem & VFS, optional WinSdkDir, optional WinSdkVersion, optional WinSysRoot, std::string & Path, int & Major, std::string & Version)

    Defined at line 97 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • bool handleInstructionWithEGPR (MachineFunction & MF, const X86Subtarget & ST)

    Defined at line 97 of file llvm/lib/Target/X86/X86SuppressAPXForReloc.cpp

  • template <class ELFT>
    Error getRelocationValueString (const ELFObjectFile<ELFT> * Obj, const RelocationRef & RelRef, SmallVectorImpl<char> & Result)

    Defined at line 97 of file llvm/tools/llvm-objdump/ELFDump.cpp

  • OrderMap orderModule (const Module & M)

    Defined at line 97 of file llvm/lib/Bitcode/Writer/ValueEnumerator.cpp

  • LoopExpansionInfo insertLoopExpansion (Instruction * InsertBefore, Value * Len, unsigned int MainLoopStep, unsigned int ResidualLoopStep, StringRef BBNamePrefix)

    Insert the control flow and loop counters for a memcpy/memset loop

    expansion.

    This function inserts IR corresponding to the following C code before

    and

    determine by how many "units" the

    loop index is increased in each iteration of the main and residual loops,

    respectively. In most cases, the "unit" will be bytes, but larger units are

    useful for lowering memset.pattern.

    The computation of

    and

    is performed at compile

    time if

    is a

    The second (residual) loop is omitted if

    is 0 or equal

    to

    The generated

    and

    are returned in a

    object.

    Code

                                                    
                                                         LoopUnits = (Len / MainLoopStep) * MainLoopStep;
                                                         ResidualUnits = Len - LoopUnits;
                                                         MainLoopIndex = 0;
                                                         if (LoopUnits > 0) {
                                                           do {
                                                             // MainLoopIP
                                                             MainLoopIndex += MainLoopStep;
                                                           } while (MainLoopIndex < LoopUnits);
                                                         }
                                                         for (size_t i = 0; i < ResidualUnits; i += ResidualLoopStep) {
                                                           ResidualLoopIndex = LoopUnits + i;
                                                           // ResidualLoopIP
                                                         }
                                                    
                                                

    Defined at line 97 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • void initializeSjLjEHPreparePassOnce (PassRegistry & Registry)

    Defined at line 98 of file llvm/lib/CodeGen/SjLjEHPrepare.cpp

  • void consumeOneOperator (DIExpressionCursor & Cursor, uint64_t & Loc, const DIExpression::ExprOperand & Op)

    Consume one operator and its operand(s).

    Defined at line 98 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • int writeUint32 (raw_ostream & OS, uint32_t Value)

    Defined at line 98 of file llvm/lib/ObjectYAML/WasmEmitter.cpp

  • void BM_LookupRuntimeLibcallByNameSampleData (benchmark::State & State)

    This isn't fully representative, it doesn't include any anonymous functions.

    nm -n --no-demangle --format=just-symbols sample-binary > sample.txt

    Defined at line 98 of file llvm/benchmarks/RuntimeLibcalls.cpp

  • bool isSameCompare (Value * V, CmpPredicate Pred, Value * LHS, Value * RHS)

    isSameCompare - Is V equivalent to the comparison "LHS Pred RHS"?

    Defined at line 98 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void transferDecorations (Value & NewVal, VPIntrinsic & VPI)

    Transfer operation properties from

    to

    Defined at line 98 of file llvm/lib/CodeGen/ExpandVectorPredication.cpp

  • void declareOperandExpansion (CodeExpansions & CE, const OperandMatcher & OM, StringRef Name)

    Defined at line 98 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • bool isArtifact (const MachineInstr & MI)

    Defined at line 98 of file llvm/lib/CodeGen/GlobalISel/Legalizer.cpp

  • LLVMBool memFinalize (void * Opaque, char ** Err)

    Defined at line 98 of file llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c

  • bool hasAnyUnrollPragma (const Loop * L, StringRef Prefix)

    Returns true if the loop has any metadata starting with Prefix. For example a

    Prefix of "llvm.loop.unroll." returns true if we have any unroll metadata.

    Defined at line 98 of file llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp

  • basic_string searchForExe (StringRef Path, StringRef Extension)

    Search for a matching executable image for the given PDB path.

    Defined at line 98 of file llvm/lib/DebugInfo/LogicalView/LVReaderHandler.cpp

  • void emitDisassembler (const RecordKeeper & Records, raw_ostream & OS)

    X86 Disassembler Emitter

    *** IF YOU'RE HERE TO RESOLVE A "Primary decode conflict", LOOK DOWN NEAR

    THE END OF THIS COMMENT!

    The X86 disassembler emitter is part of the X86 Disassembler, which is

    documented in lib/Target/X86/X86Disassembler.h.

    The emitter produces the tables that the disassembler uses to translate

    instructions. The emitter generates the following tables:

    - One table (CONTEXTS_SYM) that contains a mapping of attribute masks to

    instruction contexts. Although for each attribute there are cases where

    that attribute determines decoding, in the majority of cases decoding is

    the same whether or not an attribute is present. For example, a 64-bit

    instruction with an OPSIZE prefix and an XS prefix decodes the same way in

    all cases as a 64-bit instruction with only OPSIZE set. (The XS prefix

    may have effects on its execution, but does not change the instruction

    returned.) This allows considerable space savings in other tables.

    - Six tables (ONEBYTE_SYM, TWOBYTE_SYM, THREEBYTE38_SYM, THREEBYTE3A_SYM,

    THREEBYTEA6_SYM, and THREEBYTEA7_SYM contain the hierarchy that the

    decoder traverses while decoding an instruction. At the lowest level of

    this hierarchy are instruction UIDs, 16-bit integers that can be used to

    uniquely identify the instruction and correspond exactly to its position

    in the list of CodeGenInstructions for the target.

    - One table (INSTRUCTIONS_SYM) contains information about the operands of

    each instruction and how to decode them.

    During table generation, there may be conflicts between instructions that

    occupy the same space in the decode tables. These conflicts are resolved as

    follows in setTableFields() (X86DisassemblerTables.cpp)

    - If the current context is the native context for one of the instructions

    (that is, the attributes specified for it in the LLVM tables specify

    precisely the current context), then it has priority.

    - If the current context isn't native for either of the instructions, then

    the higher-priority context wins (that is, the one that is more specific).

    That hierarchy is determined by outranks() (X86DisassemblerTables.cpp)

    - If the current context is native for both instructions, then the table

    emitter reports a conflict and dies.

    *** RESOLUTION FOR "Primary decode conflict"S

    If two instructions collide, typically the solution is (in order of

    likelihood):

    (1) to filter out one of the instructions by editing filter()

    (X86RecognizableInstr.cpp). This is the most common resolution, but

    check the Intel manuals first to make sure that (2) and (3) are not the

    problem.

    (2) to fix the tables (X86.td and its subsidiaries) so the opcodes are

    accurate. Sometimes they are not.

    (3) to fix the tables to reflect the actual context (for example, required

    prefixes), and possibly to add a new context by editing

    include/llvm/Support/X86DisassemblerDecoderCommon.h. This is unlikely

    to be the cause.

    DisassemblerEmitter.cpp contains the implementation for the emitter,

    which simply pulls out instructions from the CodeGenTarget and pushes them

    into X86DisassemblerTables.

    X86DisassemblerTables.h contains the interface for the instruction tables,

    which manage and emit the structures discussed above.

    X86DisassemblerTables.cpp contains the implementation for the instruction

    tables.

    X86ModRMFilters.h contains filters that can be used to determine which

    ModR/M values are valid for a particular instruction. These are used to

    populate ModRMDecisions.

    X86RecognizableInstr.h contains the interface for a single instruction,

    which knows how to translate itself from a CodeGenInstruction and provide

    the information necessary for integration into the tables.

    X86RecognizableInstr.cpp contains the implementation for a single

    instruction.

    Defined at line 98 of file llvm/utils/TableGen/DisassemblerEmitter.cpp

  • void identifyFunction (OptimizationRemark & R, const Function & F)

    Defined at line 99 of file llvm/lib/Analysis/KernelInfo.cpp

  • const char * LLVMGetTargetName (LLVMTargetRef T)

    Returns the name of a target. See llvm::Target::getName

    Defined at line 99 of file llvm/lib/Target/TargetMachineC.cpp

  • template <typename T>
    T error (Expected<T> EC)

    Defined at line 99 of file llvm/tools/llvm-cvtres/llvm-cvtres.cpp

  • void reportError (Twine Message, int ExitCode)

    Handle error reporting in cases where `ExitOnError` is not used.

    Defined at line 99 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • unsigned int getBitWidth (Type * Ty, const DataLayout & DL)

    Returns the bitwidth of the given scalar or pointer type. For vector types,

    returns the element type's bitwidth.

    Defined at line 99 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isValidRegDefOf (const MachineOperand & MO, Register Reg, const TargetRegisterInfo * TRI)

    Defined at line 99 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp

  • uint32_t sizeOfPublic (const BulkPublic & Pub)

    Calculate how much memory this public needs when serialized.

    Defined at line 99 of file llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp

  • void EmitAbsDifference (MCStreamer & Streamer, const MCSymbol * LHS, const MCSymbol * RHS)

    Defined at line 99 of file llvm/lib/MC/MCWin64EH.cpp

  • bool upgradeX86MaskedFPCompare (Function * F, Intrinsic::ID IID, Function *& NewFn)

    Upgrade the declaration of fp compare intrinsics that change return type

    from scalar to vXi1 mask.

    Defined at line 99 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool allFuncUsersRewritable (const Function & F)

    Defined at line 99 of file llvm/tools/llvm-reduce/deltas/ReduceArguments.cpp

  • Error executeObjcopyOnRawBinary (ConfigManager & ConfigMgr, MemoryBuffer & In, raw_ostream & Out)

    The function executeObjcopyOnRawBinary does the dispatch based on the format

    of the output specified by the command line options.

    Defined at line 99 of file llvm/tools/llvm-objcopy/llvm-objcopy.cpp

  • unsigned int highest_one (uint64_t x)

    Find index of the highest set bit

    x is assumed to be nonzero.

    Defined at line 99 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • void printMArch (raw_ostream & OS, ArrayRef Features)

    We can generate march string from target features as what has been described

    in RISC-V ISA specification (version 20191213) 'Chapter 27. ISA Extension

    Naming Conventions'.

    This is almost the same as RISCVFeatures::parseFeatureBits, except that we

    get feature name from feature records instead of feature bits.

    Defined at line 99 of file llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  • Value * generateSignedDivisionCode (Value * Dividend, Value * Divisor, IRBuilder<> & Builder)

    Generate code to divide two signed integers. Returns the quotient, rounded

    towards 0. Builder's insert point should be pointing where the caller wants

    code generated, e.g. at the sdiv instruction. This will generate a udiv in

    the process, and Builder's insert point will be pointing at the udiv (if

    present, i.e. not folded), ready to be expanded if the user wishes.

    Defined at line 99 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • pair computeRecurrenceType (Instruction * Exit, DemandedBits * DB, AssumptionCache * AC, DominatorTree * DT)

    Compute the minimal bit width needed to represent a reduction whose exit

    instruction is given by Exit.

    Defined at line 99 of file llvm/lib/Analysis/IVDescriptors.cpp

  • ProfileKind getProfileKind (ArchKind AK)

    Defined at line 99 of file llvm/lib/TargetParser/ARMTargetParser.cpp

  • void initializeLiveDebugValuesLegacyPassOnce (PassRegistry & Registry)

    Defined at line 100 of file llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp

  • unsigned long long LLVMStoreSizeOfType (LLVMTargetDataRef TD, LLVMTypeRef Ty)

    Computes the storage size of a type in bytes for a target.

    See the method llvm::DataLayout::getTypeStoreSize.

    Defined at line 100 of file llvm/lib/Target/Target.cpp

  • void initializeLowerIntrinsicsPassOnce (PassRegistry & Registry)

    -----------------------------------------------------------------------------

    Defined at line 100 of file llvm/lib/CodeGen/GCRootLowering.cpp

  • uint64_t timespec_to_ns (const struct timespec * TS)

    Defined at line 100 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • void finishAdjustingBasicBlocksAndLandingPads (MachineFunction & MF)

    Defined at line 100 of file llvm/lib/CodeGen/MachineFunctionSplitter.cpp

  • basic_string replaceIllegalFilenameChars (basic_string Filename, const char ReplacementChar)

    Defined at line 100 of file llvm/lib/Support/GraphWriter.cpp

  • bool canTRE (Function & F)

    Scan the specified function for alloca instructions.

    If it contains any dynamic allocas, returns false.

    Defined at line 100 of file llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp

  • int GetOutputStream (StringRef Path)

    Defined at line 100 of file llvm/tools/llvm-ml/llvm-ml.cpp

  • void PrintCurStackTrace (raw_ostream & OS)

    Print the current stack trace to the specified stream.

    Marked NOINLINE so it can be called from debuggers.

    Defined at line 100 of file llvm/lib/Support/PrettyStackTrace.cpp

  • int openFile (const Twine & Path)

    Opens a file. Path has to be resolved already. (used for def file)

    Defined at line 100 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • bool needsPrologueENDBR (MachineFunction & MF, const Module * M)

    Checks if function should have an ENDBR in its prologue

    Defined at line 100 of file llvm/lib/Target/X86/X86IndirectBranchTracking.cpp

  • bool partitionOuterLoopBlocks (Loop & Root, Loop & JamLoop, BasicBlockSet & JamLoopBlocks, DenseMap<Loop *, BasicBlockSet> & ForeBlocksMap, DenseMap<Loop *, BasicBlockSet> & AftBlocksMap, DominatorTree & DT)

    Partition blocks in a loop nest into blocks before and after each inner

    loop.

    Defined at line 100 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • void llvm_blake3_compress_xof_portable (const uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags, uint8_t[64] out)

    Defined at line 100 of file llvm/lib/Support/BLAKE3/blake3_portable.c

  • bool removeDeadBlocks_v2 (Function & F, DominatorTree & DT)

    Remove trivially dead blocks. This is the second version and preserves the

    dominator tree.

    Defined at line 100 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • Value * foldMulSelectToNegate (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    TODO: This is a specific form of a much more general pattern.

    We could detect a select with any binop identity constant, or we

    could use SimplifyBinOp to see if either arm of the select reduces.

    But that needs to be done carefully and/or while removing potential

    reverse canonicalizations as in InstCombiner::foldSelectIntoOp().

    Defined at line 100 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • template <bool DbgAssignAndValuesOnly>
    void findDbgIntrinsics (Value * V, SmallVectorImpl<DbgVariableRecord *> & DbgVariableRecords)

    Defined at line 100 of file llvm/lib/IR/DebugInfo.cpp

  • bool replaceWithCallToVeclib (const TargetLibraryInfo & TLI, IntrinsicInst * II)

    Returns true when successfully replaced

    which is a call to a

    vectorized intrinsic, with a suitable function taking vector arguments,

    based on available mappings in the

    Defined at line 100 of file llvm/lib/CodeGen/ReplaceWithVeclib.cpp

  • int32_t return1 ()

    Defined at line 101 of file llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/LLJITWithExecutorProcessControl.cpp

  • void initializeStripDebugMachineModulePassOnce (PassRegistry & Registry)

    Defined at line 101 of file llvm/lib/CodeGen/MachineStripDebug.cpp

  • bool setOnlyReadsMemory (Function & F)

    Defined at line 101 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void error (const Twine & Message, StringRef File)

    Defined at line 101 of file llvm/tools/llvm-size/llvm-size.cpp

  • raw_ostream & printPrintableName (raw_ostream & OS, StringRef Name)

    Return Name, and if Name is mangled, append "aka" and the demangled name.

    Defined at line 101 of file llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp

  • Value * createByteGEP (IRBuilderBase & IRB, const DataLayout & DL, Value * Ptr, Type * ResElemTy, int64_t Offset)

    Defined at line 101 of file llvm/lib/Transforms/IPO/ArgumentPromotion.cpp

  • bool isKnownLibFunction (Function & F, TargetLibraryInfo & TLI)

    Defined at line 101 of file llvm/lib/Transforms/IPO/ModuleInliner.cpp

  • void writeStringToFile (StringRef Content, StringRef Path)

    Defined at line 101 of file llvm/tools/llvm-split/llvm-split.cpp

  • bool dominates (MachineBasicBlock & MBB, int A, int B)

    Defined at line 101 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp

  • bool hasNoSimpleLoops (const LegalizeRule & Rule, const LegalityQuery & Q, const std::pair<unsigned int, LLT> & Mutation)

    Make sure the rule won't (trivially) loop forever.

    Defined at line 101 of file llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp

  • std::optional<TypeSize> getObjectSize (const Value * V, const DataLayout & DL, const TargetLibraryInfo & TLI, bool NullIsValidLoc, bool RoundToAlign)

    Returns the size of the object specified by V or UnknownSize if unknown.

    Defined at line 101 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • void writePaxHeader (raw_fd_ostream & OS, StringRef Path)

    Create a tar header and write it to a given output stream.

    Defined at line 101 of file llvm/lib/Support/TarWriter.cpp

  • void initializeFileAndStringTable (const llvm::object::COFFObjectFile & Obj, codeview::StringsAndChecksumsRef & SC)

    Defined at line 101 of file llvm/tools/obj2yaml/coff2yaml.cpp

  • int CheckChunk (Chunk ChunkToCheckForUninterestingness, int Clone, const TestRunner & Test, ReductionFunc ExtractChunksFromModule, const int & UninterestingChunks, const int & ChunksStillConsideredInteresting)

    Check if

    is interesting. Returns the

    modified module if the chunk resulted in a reduction.

    Defined at line 101 of file llvm/tools/llvm-reduce/deltas/Delta.cpp

  • int32_t return2 ()

    Defined at line 102 of file llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/LLJITWithExecutorProcessControl.cpp

  • void initializeUnreachableMachineBlockElimLegacyPassOnce (PassRegistry & Registry)

    Defined at line 102 of file llvm/lib/CodeGen/UnreachableBlockElim.cpp

  • bool isCodeMotionBarrier (MachineInstr & MI)

    Returns whether this instruction is considered a code motion barrier by this

    pass. We can be less conservative than hasUnmodeledSideEffects() when

    deciding whether an instruction is a barrier because it is known that pseudo

    probes are safe to move in this pass specifically (see commit 1cb47a063e2b).

    Defined at line 102 of file llvm/lib/CodeGen/LiveRangeShrink.cpp

  • void helpExit ()

    Defined at line 102 of file llvm/tools/llvm-debuginfod-find/llvm-debuginfod-find.cpp

  • bool containsEpilogue (const MachineBasicBlock & MBB)

    Defined at line 102 of file llvm/lib/CodeGen/CFIFixup.cpp

  • basic_string computeBPFDataLayout (const Triple & TT)

    DataLayout: little or big endian

    Defined at line 102 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • unsigned int getReductionSize ()

    Defined at line 102 of file llvm/lib/CodeGen/ScheduleDAGInstrs.cpp

  • void addCalleeSavedRegs (LiveRegUnits & LiveUnits, const MachineFunction & MF)

    Adds all callee saved registers to

    Defined at line 102 of file llvm/lib/CodeGen/LiveRegUnits.cpp

  • void buildDebugInfoForNoopResumeDestroyFunc (Function * NoopFn)

    Defined at line 102 of file llvm/lib/Transforms/Coroutines/CoroEarly.cpp

  • Error ProcessFailure (StringRef ProgPath, ArrayRef Args, unsigned int Timeout, unsigned int MemoryLimit)

    Defined at line 102 of file llvm/tools/bugpoint/ToolRunner.cpp

  • bool runImpl (Function & F, const TargetLowering * TLI, DomTreeUpdater * DTU)

    Defined at line 102 of file llvm/lib/CodeGen/IndirectBrExpandPass.cpp

  • void initializeBreakFalseDepsPassOnce (PassRegistry & Registry)

    Defined at line 103 of file llvm/lib/CodeGen/BreakFalseDeps.cpp

  • const char * LLVMGetTargetDescription (LLVMTargetRef T)

    Returns the description of a target. See llvm::Target::getDescription

    Defined at line 103 of file llvm/lib/Target/TargetMachineC.cpp

  • bool flagIsSet (DWARFVerify Flags, DWARFVerify SingleFlag)

    Defined at line 103 of file llvm/tools/dsymutil/dsymutil.cpp

  • const GlobalObject * getGVPartitioningRoot (const GlobalValue * GV)

    Defined at line 103 of file llvm/lib/Transforms/Utils/SplitModule.cpp

  • void emitInclude (StringRef FilenamePrefix, StringRef IncludeFile, StringRef GuardMacro, raw_ostream & OS)

    Defined at line 103 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • void initializeIRTranslatorPassOnce (PassRegistry & Registry)

    Defined at line 103 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • int64_t readFloat64 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 103 of file llvm/lib/Object/WasmObjectFile.cpp

  • void removeTailCallAttribute (AllocaInst * Frame, AAResults & AA)

    Look for any tail calls referencing the coroutine frame and remove tail

    attribute from them, since now coroutine frame resides on the stack and tail

    call implies that the function does not references anything on the stack.

    However if it's a musttail call, we cannot remove the tailcall attribute.

    It's safe to keep it there as the musttail call is for symmetric transfer,

    and by that point the frame should have been destroyed and hence not

    interfering with operands.

    Defined at line 103 of file llvm/lib/Transforms/Coroutines/CoroElide.cpp

  • Instruction * splitBeforeCatchSwitch (CatchSwitchInst * CatchSwitch)

    We need to make room to insert a spill after initial PHIs, but before

    catchswitch instruction. Placing it before violates the requirement that

    catchswitch, like all other EHPads must be the first nonPHI in a block.

    Split away catchswitch into a separate block and insert in its place:

    cleanuppad

    <InsertPt

    > cleanupret.

    cleanupret instruction will act as an insert point for the spill.

    Defined at line 103 of file llvm/lib/Transforms/Coroutines/SpillUtils.cpp

  • AllocaInst * createAllocaInstAtEntry (int & Builder, BasicBlock * BB, Type * Ty)

    Defined at line 103 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • LLVMBool LLVMCreateExecutionEngineForModule (LLVMExecutionEngineRef * OutEE, LLVMModuleRef M, char ** OutError)

    ===-- Operations on execution engines -----------------------------------===

    Defined at line 103 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • Expected loadPdbFile (StringRef PdbPath, std::unique_ptr<BumpPtrAllocator> & Allocator)

    Defined at line 103 of file llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp

  • pair getCustomCoders (ArrayRef Args)

    Get the name of custom encoder or decoder, if there is any.

    Returns `{encoder name, decoder name}`.

    Defined at line 103 of file llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp

  • void remarkAlloca (OptimizationRemarkEmitter & ORE, const Function & Caller, const AllocaInst & Alloca, TypeSize::ScalarTy StaticSize)

    Defined at line 103 of file llvm/lib/Analysis/KernelInfo.cpp

  • bool runOnFunction (Function & F, bool PostInlining)

    Defined at line 103 of file llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp

  • bool SinkInstruction (Instruction * Inst, SmallPtrSetImpl<Instruction *> & Stores, DominatorTree & DT, LoopInfo & LI, AAResults & AA)

    SinkInstruction - Determine whether it is safe to sink the specified machine

    instruction out of its current block into a successor.

    Defined at line 103 of file llvm/lib/Transforms/Scalar/Sink.cpp

  • void initializeInitUndefLegacyPassOnce (PassRegistry & Registry)

    Defined at line 104 of file llvm/lib/CodeGen/InitUndef.cpp

  • void initializeSingleLoopExtractorPassOnce (PassRegistry & Registry)

    Defined at line 104 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp

  • CanMerge makeMergeable (GlobalVariable * Old, GlobalVariable * New)

    Defined at line 104 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp

  • void * reenter (void * Ctx, void * TrampolineAddr)

    Defined at line 104 of file llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/LLJITWithExecutorProcessControl.cpp

  • Cursor skipMachineOperandComment (Cursor C)

    Machine operands can have comments, enclosed between /* and */.

    This eats up all tokens, including /* and */.

    Defined at line 104 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • Error createResultCachePoisonedError (ArrayRef KeyHash, const CASContext & Context, CASID Output, ArrayRef ExistingOutput)

    Defined at line 104 of file llvm/lib/CAS/ActionCaches.cpp

  • ConstantAsMetadata * getValMD (MDTuple * MD, const char * Key)

    Get the value metadata for the input MD/Key.

    Defined at line 104 of file llvm/lib/IR/ProfileSummary.cpp

  • Expected createObjectFileFromYamlDescription (const char * YamlCreationString, SmallVector<char> & Storage, function_ref IsValidFormat)

    Create ObjectFile from

    and do validation using

    checker.

    is a storage for data.

    Defined at line 104 of file llvm/unittests/ObjCopy/ObjCopyTest.cpp

  • template <typename T>
    std::vector<T> & GetOrCreateOffsetCache (void *& OffsetCache, MemoryBuffer * Buffer)

    Defined at line 104 of file llvm/lib/Support/SourceMgr.cpp

  • bool IsNullTerminatedString (const Constant * C)

    IsNullTerminatedString - Return true if the specified constant (which is

    known to have a type that is an array of 1/2/4 byte elements) ends with a

    nul value and contains no other nuls in it. Note that this is more general

    than ConstantDataSequential::isString because we allow 2

    &

    4 byte strings.

    Defined at line 104 of file llvm/lib/Target/TargetLoweringObjectFile.cpp

  • const GlobalValueSummary * getFirstDefinitionForLinker (int GVSummaryList)

    Defined at line 104 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • basic_string formatCallingConvention (CallingConvention Convention)

    Defined at line 104 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • Error dumpDebugARanges (llvm::DWARFContext & DCtx, llvm::DWARFYAML::Data & Y)

    Defined at line 104 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • void Help (ArrayRef CPUNames, ArrayRef FeatTable)

    Display help for feature and mcpu choices.

    Defined at line 104 of file llvm/lib/MC/MCSubtargetInfo.cpp

  • bool runMoveAutoInit (Function & F, DominatorTree & DT, MemorySSA & MSSA)

    Defined at line 104 of file llvm/lib/Transforms/Utils/MoveAutoInit.cpp

  • void initializeDomViewerWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 105 of file llvm/lib/Analysis/DomPrinter.cpp

  • DWARFDie resolveReferencedType (DWARFDie D, DWARFFormValue F)

    Defined at line 105 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • void startFromBeginning (uint64_t & Loc, DIExpressionCursor & Cursor, ArrayRef WorkingOps)

    Reset the Cursor to the beginning of the WorkingOps.

    Defined at line 105 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • unsigned int getTMMIndex (Register Reg)

    Defined at line 105 of file llvm/lib/Target/X86/X86FastTileConfig.cpp

  • template <typename T>
    T error (StringRef Input, Expected<T> EC)

    Defined at line 105 of file llvm/tools/llvm-cvtres/llvm-cvtres.cpp

  • int writeUint8 (raw_ostream & OS, uint8_t Value)

    Defined at line 105 of file llvm/lib/ObjectYAML/WasmEmitter.cpp

  • void initializePromoteLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 105 of file llvm/lib/Transforms/Utils/Mem2Reg.cpp

  • basic_string print (std::function<void (raw_ostream &)> PrintFn)

    Helper to dump the printer output into a string.

    Defined at line 105 of file llvm/unittests/MIR/MachineMetadata.cpp

  • uint64_t perf_get_timestamp ()

    Defined at line 105 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • void setSectionType (SectionBase & Sec, uint64_t Type)

    Defined at line 105 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • uint32_t handleEnumerator (ArrayRef Data, uint32_t Offset, SmallVectorImpl<TiReference> & Refs)

    Defined at line 105 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • Expected getMachoCPUFromTriple (Triple TT)

    Defined at line 105 of file llvm/lib/Object/MachOUniversalWriter.cpp

  • LLVMBool LLVMGetBitcodeModuleInContext2 (LLVMContextRef ContextRef, LLVMMemoryBufferRef MemBuf, LLVMModuleRef * OutM)

    Reads a module from the given memory buffer, returning via the OutMP

    parameter a module provider which performs lazy deserialization.

    Returns 0 on success.

    Takes ownership of

    if (and only if) the module was read

    successfully.

    Defined at line 105 of file llvm/lib/Bitcode/Reader/BitReader.cpp

  • void printInstructionStatus (unsigned int BlameLine, bool CFIProtected, const DILineInfo & LineInfo)

    Defined at line 105 of file llvm/tools/llvm-cfi-verify/llvm-cfi-verify.cpp

  • BasicBlock * expandToSwitch (CallBase * CB, const JumpTableTy & JT, DomTreeUpdater & DTU, OptimizationRemarkEmitter & ORE, function_ref GetGuidForFunction)

    Defined at line 105 of file llvm/lib/Transforms/Scalar/JumpTableToSwitch.cpp

  • void parseArgs (int argc, char ** argv)

    Defined at line 105 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • void reportWarning (Twine Message)

    Handle warnings.

    Defined at line 106 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • unsigned int bigEndianByteAt (const unsigned int ByteWidth, const unsigned int I)

    E.g. Given a 4-byte type x, x[0] -> byte 3

    Defined at line 106 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • void LLVMInitializeAllAsmPrinters ()

    LLVMInitializeAllAsmPrinters - The main program should call this function if

    it wants all asm printers that LLVM is configured to support, to make them

    available via the TargetRegistry.

    Defined at line 106 of file llvm/include/llvm-c/Target.h

  • void LLVMInitializeAllAsmPrinters ()

    LLVMInitializeAllAsmPrinters - The main program should call this function if

    it wants all asm printers that LLVM is configured to support, to make them

    available via the TargetRegistry.

    Defined at line 106 of file llvm/include/llvm-c/Target.h

  • void eliminateGuard (Instruction * GuardInst, MemorySSAUpdater * MSSAU)

    Eliminates the guard instruction properly.

    Defined at line 106 of file llvm/lib/Transforms/Scalar/GuardWidening.cpp

  • bool isFIDef (const MachineInstr & MI, int FrameIndex, const TargetInstrInfo * TII)

    Defined at line 106 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp

  • bool containsReg (SmallSetVector<Register, 32> LocalDefsV, const BitVector & LocalDefsP, Register Reg, const TargetRegisterInfo * TRI)

    Check if target reg is contained in given lists, which are:

    LocalDefsV as given list for virtual regs

    LocalDefsP as given list for physical regs, in BitVector[RegUnit] form

    Defined at line 106 of file llvm/lib/CodeGen/MachineInstrBundle.cpp

  • void findUsedValues (GlobalVariable * LLVMUsed, SmallPtrSetImpl<const GlobalValue *> & UsedValues)

    Find values that are marked as llvm.used.

    Defined at line 106 of file llvm/lib/Transforms/IPO/StripSymbols.cpp

  • bool namespaceOverrides (const unsigned char * HRef1, const unsigned char * HRef2)

    Check if namespace specified by HRef1 overrides that of HRef2.

    Defined at line 106 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • ParsedModuleAndIndex parseAssemblyFileWithIndex (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, bool UpgradeDebugInfo, function_ref DataLayoutCallback)

    Defined at line 106 of file llvm/lib/AsmParser/Parser.cpp

  • CVRecord serializePublic (uint8_t * Mem, const BulkPublic & Pub)

    Defined at line 106 of file llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp

  • void collectRelocationOffsets (const ObjectFile * Obj, const SectionRef & Sec, uint64_t SecAddress, uint64_t SymAddress, uint64_t SymSize, StringRef SymName, std::map<std::pair<StringRef, uint64_t>, StringRef> & Collection)

    Defined at line 106 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • void initializePrintModulePassWrapperPassOnce (PassRegistry & Registry)

    Defined at line 107 of file llvm/lib/IR/IRPrintingPasses.cpp

  • CParser * unwrap (LLVMRemarkParserRef P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 107 of file llvm/lib/Remarks/RemarkParser.cpp

  • LLVMRemarkParserRef wrap (const CParser * P)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 107 of file llvm/lib/Remarks/RemarkParser.cpp

  • LLVMBool LLVMTargetHasJIT (LLVMTargetRef T)

    Returns if the target has a JIT

    Defined at line 107 of file llvm/lib/Target/TargetMachineC.cpp

  • bool isEarlyClobberMI (MachineInstr & MI)

    Defined at line 107 of file llvm/lib/CodeGen/InitUndef.cpp

  • uint64_t computeTotalBlockSizes (LinkGraph & G)

    Defined at line 107 of file llvm/tools/llvm-jitlink/llvm-jitlink-statistics.cpp

  • void disableEnvironmentDebugFeatures ()

    Turn off crash debugging features

    Crash is expected, so disable crash reports and symbolization to reduce

    output clutter and avoid potentially slow symbolization.

    Defined at line 107 of file llvm/tools/llvm-reduce/llvm-reduce.cpp

  • void testParseError (unsigned int Tag, unsigned int Value, const char * msg)

    Defined at line 107 of file llvm/unittests/Support/CSKYAttributeParserTest.cpp

  • Error readGSIHashRecords (FixedStreamArray<PSHashRecord> & HashRecords, const GSIHashHeader * HashHdr, BinaryStreamReader & Reader)

    Defined at line 107 of file llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp

  • Expected<std::string> searchForFile (const Twine & FileName)

    Defined at line 107 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • bool lowerLoadRelative (Function & F)

    Defined at line 107 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • void removeUninterestingBBsFromSwitch (SwitchInst & SwInst, const BlockSet & BBsToDelete)

    Removes uninteresting BBs from switch, if the default case ends up being

    uninteresting, the switch is replaced with a void return (since it has to be

    replace with something)

    Defined at line 107 of file llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp

  • int LLVMFuzzerTestOneInput (const uint8_t * Data, size_t Size)

    Defined at line 107 of file llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp

  • void Destroy (void * Ctx)

    Defined at line 108 of file llvm/examples/OrcV2Examples/OrcV2CBindingsVeryLazy/OrcV2CBindingsVeryLazy.c

  • void exitWithErrorCode (error_code EC, StringRef Whence)

    Defined at line 108 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • unsigned int adjustForEndian (const DataLayout & DL, unsigned int VectorWidth, unsigned int Idx)

    Defined at line 108 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • DISubprogram * getSubprogram (DIScope * Scope)

    Helper function to either return Scope, if it is a subprogram or the

    attached subprogram for a local scope.

    Defined at line 108 of file llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

  • void convertToLocalCopy (Module & M, GlobalVariable & GV)

    Similar to the function above, this is to convert an externally available

    global variable to local.

    Defined at line 108 of file llvm/lib/Transforms/IPO/ElimAvailExtern.cpp

  • bool setOnlyWritesMemory (Function & F)

    Defined at line 108 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void handleLLVMFatalError (void * , const char * Message, bool )

    Defined at line 108 of file llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp

  • bool hasUndefSource (AnyMemTransferInst * MI)

    Recognize a memcpy/memmove from a trivially otherwise unused alloca.

    TODO: This should probably be integrated with visitAllocSites, but that

    requires a deeper change to allow either unread or unwritten objects.

    Defined at line 108 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • int advance ()

    Defined at line 108 of file llvm/examples/Kaleidoscope/Chapter9/toy.cpp

  • void BuildInstOrderMap (int Start, int & M)

    Builds Instruction to its dominating order number map

    by traversing

    from instruction

    Defined at line 108 of file llvm/lib/CodeGen/LiveRangeShrink.cpp

  • void executeFAddInst (GenericValue & Dest, GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 108 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • const Instruction * safeCxtI (const Value * V, const Instruction * CxtI)

    Given the provided Value and, potentially, a context instruction, return

    the preferred context instruction (if any).

    Defined at line 108 of file llvm/lib/Analysis/ValueTracking.cpp

  • int WriteOutput (const TGParser & Parser, const char * argv0, StringRef Filename, StringRef Content)

    Defined at line 108 of file llvm/lib/TableGen/Main.cpp

  • bool isColdBlock (const MachineBasicBlock & MBB, const MachineBlockFrequencyInfo * MBFI, ProfileSummaryInfo * PSI)

    Defined at line 108 of file llvm/lib/CodeGen/MachineFunctionSplitter.cpp

  • ExFunc lookupFunction (const Function * F)

    Try to find address of external function given a Function object.

    Please note, that interpreter doesn't know how to assemble a

    real call in general case (this is JIT job), that's why it assumes,

    that all external functions has the same (and pretty "general") signature.

    The typical example of such functions are "lle_X_" ones.

    Defined at line 108 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • basic_string formatFrameProcedureOptions (uint32_t IndentLevel, FrameProcedureOptions FPO)

    Defined at line 108 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • bool lookup (const GsymReader & GR, DataExtractor & Data, uint64_t & Offset, uint64_t BaseAddr, uint64_t Addr, SourceLocations & SrcLocs, llvm::Error & Err)

    A Lookup helper functions.

    Used during the InlineInfo::lookup() call to quickly only parse an

    InlineInfo object if the address falls within this object. This avoids

    allocations by not appending child InlineInfo objects to the

    InlineInfo::Children array and also skips any InlineInfo objects that do

    not contain the address we are looking up.

    Parameters

    Data The binary stream to read the data from.
    Offset The byte offset within
    BaseAddr The address that the relative address range offsets are relative to.

    Defined at line 108 of file llvm/lib/DebugInfo/GSYM/InlineInfo.cpp

  • void EmitUnwindCode (MCStreamer & streamer, const MCSymbol * begin, WinEH::Instruction & inst)

    Defined at line 108 of file llvm/lib/MC/MCWin64EH.cpp

  • bool runIPSCCP (Module & M, const DataLayout & DL, FunctionAnalysisManager * FAM, std::function<const TargetLibraryInfo &(Function &)> GetTLI, std::function<TargetTransformInfo &(Function &)> GetTTI, std::function<AssumptionCache &(Function &)> GetAC, std::function<DominatorTree &(Function &)> GetDT, std::function<BlockFrequencyInfo &(Function &)> GetBFI, bool IsFuncSpecEnabled)

    Defined at line 108 of file llvm/lib/Transforms/IPO/SCCP.cpp

  • void initializeDomOnlyViewerWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 109 of file llvm/lib/Analysis/DomPrinter.cpp

  • int error (const Twine & Error, const Twine & Context)

    Defined at line 109 of file llvm/tools/llvm-dwp/llvm-dwp.cpp

  • TargetOptions getTargetOptionsForBogusMachine ()

    Defined at line 109 of file llvm/unittests/CodeGen/MFCommon.inc

  • void collectMDInDomain (const MDNode * List, const MDNode * Domain, SmallPtrSetImpl<const MDNode *> & Nodes)

    Defined at line 109 of file llvm/lib/Analysis/ScopedNoAliasAA.cpp

  • SmallVector FindCallBrs (Function & F)

    Defined at line 109 of file llvm/lib/CodeGen/CallBrPrepare.cpp

  • basic_string computeCSKYDataLayout (const Triple & TT)

    Defined at line 109 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • template <bool Is64>
    SmallVector encodeCrel (ArrayRef Relocations)

    Defined at line 109 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • bool isCondRelevantToAnyCallArgument (ICmpInst * Cmp, CallBase & CB)

    Defined at line 109 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • const SCEV * computeTripCount (const Loop & L, const SCEV & ElemSize, ScalarEvolution & SE)

    Compute the trip count for the given loop

    or assume a default value if

    it is not a compile time constant. Return the SCEV expression for the trip

    count.

    Defined at line 109 of file llvm/lib/Analysis/LoopCacheAnalysis.cpp

  • void initializeBase (TargetLibraryInfoImpl & TLI, const Triple & T)

    Defined at line 109 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • MachineBasicBlock * findPrologueEnd (MachineFunction & MF, int & PrologueEnd)

    Defined at line 109 of file llvm/lib/CodeGen/CFIFixup.cpp

  • StringRef prettyLanguageVersionString (const DWARFAttribute & AttrValue, const DWARFDie & Die)

    Defined at line 109 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • bool addEmuTlsVar (Module & M, const GlobalVariable * GV)

    Defined at line 109 of file llvm/lib/CodeGen/LowerEmuTLS.cpp

  • void initializePrintFunctionPassWrapperPassOnce (PassRegistry & Registry)

    Defined at line 110 of file llvm/lib/IR/IRPrintingPasses.cpp

  • unsigned int capLatency (int Cycles)

    The machine model may explicitly specify an invalid latency, which

    effectively means infinite latency. Since users of the TargetSchedule API

    don't know how to handle this, we convert it to a very large latency that is

    easy to distinguish when debugging the DAG but won't induce overflow.

    Defined at line 110 of file llvm/lib/CodeGen/TargetSchedule.cpp

  • unsigned int getSUBriOpcode (bool IsLP64)

    Defined at line 110 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • void declareTempRegExpansion (CodeExpansions & CE, unsigned int TempRegID, StringRef Name)

    Defined at line 110 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • void initializeInstSimplifyLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 110 of file llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp

  • LLVMErrorRef LLVMRunPassesOnFunction (LLVMValueRef F, const char * Passes, LLVMTargetMachineRef TM, LLVMPassBuilderOptionsRef Options)

    Construct and run a set of passes over a function.

    This function behaves the same as LLVMRunPasses, but operates on a single

    function instead of an entire module.

    Defined at line 110 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • void dumpSUList (const int & L)

    Defined at line 110 of file llvm/lib/CodeGen/ScheduleDAGInstrs.cpp

  • void reportNumberOfEntries (const TargetLibraryInfo & TLI, StringRef TargetTriple)

    Defined at line 110 of file llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp

  • void VerifyPHIs (MachineFunction & MF, bool CheckExtra)

    Defined at line 110 of file llvm/lib/CodeGen/TailDuplicator.cpp

  • void Materialize (void * Ctx, LLVMOrcMaterializationResponsibilityRef MR)

    Defined at line 110 of file llvm/examples/OrcV2Examples/OrcV2CBindingsVeryLazy/OrcV2CBindingsVeryLazy.c

  • void EmitInstructions (int & Insts, raw_ostream & O, bool PassSubtarget)

    EmitInstructions - Emit the last instruction in the vector and any other

    instructions that are suitably similar to it.

    Defined at line 110 of file llvm/utils/TableGen/AsmWriterEmitter.cpp

  • void opt_bool_anchor ()

    These anchor functions instantiate opt

    <T

    > and reference its virtual

    destructor to ensure MSVC exports the corresponding vtable and typeinfo when

    building a Windows DLL. Without an explicit reference, MSVC may omit the

    instantiation at link time even if it is marked DLL-export.

    Defined at line 111 of file llvm/lib/Support/CommandLine.cpp

  • LLVMBool LLVMTargetHasTargetMachine (LLVMTargetRef T)

    Returns if the target has a TargetMachine associated

    Defined at line 111 of file llvm/lib/Target/TargetMachineC.cpp

  • template <typename T>
    T error (StringRef Input, ErrorOr<T> && EC)

    Defined at line 111 of file llvm/tools/llvm-cvtres/llvm-cvtres.cpp

  • void voidNoopAsync (unique_function SendResult)

    Defined at line 111 of file llvm/unittests/ExecutionEngine/Orc/WrapperFunctionUtilsTest.cpp

  • StringSet<> & getSupportedSchemes ()

    Return the set containing the supported URI schemes.

    Defined at line 111 of file llvm/lib/Support/LSP/Protocol.cpp

  • size_t getMemUsage ()

    Defined at line 111 of file llvm/lib/Support/Timer.cpp

  • const char * getPtr (const MachOObjectFile & O, size_t Offset, size_t MachOFilesetEntryOffset)

    Defined at line 111 of file llvm/lib/Object/MachOObjectFile.cpp

  • SDValue emitRepstosB (const X86Subtarget & Subtarget, SelectionDAG & DAG, const SDLoc & dl, SDValue Chain, SDValue Dst, SDValue Val, uint64_t Size)

    Emit a single REP STOSB instruction for a particular constant size.

    Defined at line 111 of file llvm/lib/Target/X86/X86SelectionDAGInfo.cpp

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 111 of file llvm/unittests/Transforms/Utils/LocalTest.cpp

  • bool declaresCoroCleanupIntrinsics (const Module & M)

    Defined at line 111 of file llvm/lib/Transforms/Coroutines/CoroCleanup.cpp

  • CallInst * InsertTrap (BuilderTy & IRB, bool DebugTrapBB, optional GuardKind)

    Defined at line 111 of file llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp

  • void RemoveInstInputs (Value * V, SmallVectorImpl<Instruction *> & InstInputs)

    Defined at line 111 of file llvm/lib/Analysis/PHITransAddr.cpp

  • int AsLexInput (SourceMgr & SrcMgr, MCAsmInfo & MAI, raw_ostream & OS)

    Defined at line 111 of file llvm/tools/llvm-ml/llvm-ml.cpp

  • void runDeltaPassName (TestRunner & Tester, StringRef PassName)

    Defined at line 111 of file llvm/tools/llvm-reduce/DeltaManager.cpp

  • void CheckForPhysRegDependency (SDNode * Def, SDNode * User, unsigned int Op, const TargetRegisterInfo * TRI, const TargetInstrInfo * TII, MCRegister & PhysReg, int & Cost)

    CheckForPhysRegDependency - Check if the dependency between def and use of

    a specified operand is a physical register dependency. If so, returns the

    register and the cost of copying the register.

    Defined at line 111 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp

  • cpu_feature get_cpu_features ()

    Defined at line 111 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c

  • void opt_char_anchor ()

    Defined at line 112 of file llvm/lib/Support/CommandLine.cpp

  • void initializeDAHPassOnce (PassRegistry & Registry)

    Defined at line 112 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp

  • Error error (const Twine & Message)

    Defined at line 112 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool ignoreCallingConv (LibFunc Func)

    ===----------------------------------------------------------------------===//

    Helper Functions

    ===----------------------------------------------------------------------===//

    Defined at line 112 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • int writeStringRef (const StringRef & Str, raw_ostream & OS)

    Defined at line 112 of file llvm/lib/ObjectYAML/WasmEmitter.cpp

  • void addCapturesStat (CaptureInfo CI)

    Defined at line 112 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void replaceOperation (Value & NewOp, VPIntrinsic & OldOp)

    Transfer all properties from

    to

    and replace all uses.

    OldVP gets erased.

    Defined at line 112 of file llvm/lib/CodeGen/ExpandVectorPredication.cpp

  • uint64_t readULEB128 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 112 of file llvm/lib/Object/WasmObjectFile.cpp

  • basic_string findInputFile (StringRef File, ArrayRef Paths)

    Defined at line 112 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • int intersects (const MachineInstr * StartMI, const MachineInstr * EndMI, ArrayRef<InsnRange> Ranges, const InstructionOrdering & Ordering)

    Check if the instruction range [StartMI, EndMI] intersects any instruction

    range in Ranges. EndMI can be nullptr to indicate that the range is

    unbounded. Assumes Ranges is ordered and disjoint. Returns true and points

    to the first intersecting scope range if one exists.

    Defined at line 112 of file llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp

  • int createTLOF (const Triple & TT)

    Defined at line 112 of file llvm/lib/Target/X86/X86TargetMachine.cpp

  • bool upgradeX86MultiplyAddBytes (Function * F, Intrinsic::ID IID, Function *& NewFn)

    Upgrade the declaration of multiply and add bytes intrinsics whose input

    arguments' types have changed from vectors of i32 to vectors of i8

    Defined at line 112 of file llvm/lib/IR/AutoUpgrade.cpp

  • Value * buildTargetLegalPtr (Module * M, Value * Ptr, InsertPosition IP, const Twine & Name, SmallVector<Instruction *> * NewInsts)

    Adapts the current pointer for a legal mem operation on the target arch.

    Defined at line 112 of file llvm/lib/FuzzMutate/RandomIRBuilder.cpp

  • void read_link (const Twine & Path, SmallVectorImpl<char> & Output)

    Get what the symlink points to.

    This is a no-op on windows as it references POSIX level apis.

    Defined at line 112 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • void setUnsafeStackSize (const Function & F, MachineFrameInfo & FrameInfo)

    Defined at line 112 of file llvm/lib/CodeGen/MachineFunction.cpp

  • void SplitStringDelims (StringRef Source, SmallVectorImpl<std::pair<StringRef, StringRef>> & OutFragments, function_ref IsLegalChar)

    Split 'Source' on any character that fails to pass 'IsLegalChar'. The

    returned vector consists of pairs where 'first' is the delimited word, and

    'second' are the delimiters following that word.

    Defined at line 112 of file llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp

  • int convert_main (int argc, const char *[] argv)

    Defined at line 112 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • int llvm_debuginfod_find_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 112 of file llvm/tools/llvm-debuginfod-find/llvm-debuginfod-find.cpp

  • ModRefInfo GetLocation (const Instruction * Inst, MemoryLocation & Loc, const TargetLibraryInfo & TLI)

    If the given instruction references a specific memory location, fill in Loc

    with the details, otherwise set Loc.Ptr to null.

    Returns a ModRefInfo value describing the general behavior of the

    instruction.

    Defined at line 112 of file llvm/lib/Analysis/MemoryDependenceAnalysis.cpp

  • void opt_int_anchor ()

    Defined at line 113 of file llvm/lib/Support/CommandLine.cpp

  • bool fcmpPredExcludesEqual (Predicate Pred)

    Return true for ULT/UGT/OLT/OGT

    Defined at line 113 of file llvm/lib/IR/ConstantFPRange.cpp

  • void LLVMViewFunctionCFG (LLVMValueRef Fn)

    Open up a ghostview window that displays the CFG of the current function.

    Useful for debugging.

    Defined at line 113 of file llvm/lib/Analysis/Analysis.cpp

  • void initializeMachineOptimizationRemarkEmitterPassPassOnce (PassRegistry & Registry)

    Defined at line 113 of file llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp

  • uint8_t unitIntervalTo8BitChar (double B)

    Takes a double precision number, clips it between 0 and 1 and then converts

    that to an integer between 0x00 and 0xFF with proxpper rounding.

    Defined at line 113 of file llvm/tools/llvm-xray/xray-color-helper.cpp

  • bool findImplictDefMIFromReg (Register Reg, MachineRegisterInfo * MRI)

    Defined at line 113 of file llvm/lib/CodeGen/InitUndef.cpp

  • void dumpExpression (raw_ostream & OS, DIDumpOptions DumpOpts, ArrayRef Data, bool IsLittleEndian, unsigned int AddressSize, DWARFUnit * U)

    Defined at line 113 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp

  • bool isSimpleEnoughValueToCommit (Constant * C, SmallPtrSetImpl<Constant *> & SimpleConstants, const DataLayout & DL)

    Defined at line 113 of file llvm/lib/Transforms/Utils/Evaluator.cpp

  • void createRetPHINode (Instruction * OrigInst, Instruction * NewInst, BasicBlock * MergeBlock, IRBuilder<> & Builder)

    Create a phi node for the returned value of a call or invoke instruction.

    After versioning a call or invoke instruction that returns a value, we have

    to merge the value of the original and new instructions. We do this by

    creating a phi node and replacing uses of the original instruction with this

    phi node.

    For example, if

    is defined in "else_bb" and

    is

    defined in "then_bb", we create the following phi node:

    ; Uses of the original instruction are replaced by uses of the phi node.

    %t0 = phi i32 [ %orig_inst, %else_bb ], [ %new_inst, %then_bb ],

    Defined at line 113 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • void writeModuleToFile (const Module & M, StringRef Path, bool OutputAssembly)

    Defined at line 113 of file llvm/tools/llvm-split/llvm-split.cpp

  • void reportTranslationError (MachineFunction & MF, OptimizationRemarkEmitter & ORE, OptimizationRemarkMissed & R)

    Defined at line 113 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • Error setSectionFlagsAndType (SectionBase & Sec, SectionFlag Flags, uint16_t EMachine)

    Defined at line 113 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • void writeDebugRecord (const PerfJITDebugInfoRecord & DebugRecord)

    Defined at line 113 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • void error (Error E, StringRef FileName, const Archive::Child & C, StringRef ArchitectureName)

    This version of error() prints the archive name and member name, for example:

    "libx.a(foo.o)" after the ToolName before the error message. It sets

    HadError but returns allowing the code to move on to other archive members.

    Defined at line 113 of file llvm/tools/llvm-size/llvm-size.cpp

  • void initializePostDomViewerWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 114 of file llvm/lib/Analysis/DomPrinter.cpp

  • void opt_unsigned_anchor ()

    Defined at line 114 of file llvm/lib/Support/CommandLine.cpp

  • void initializeX86LoadValueInjectionRetHardeningPassPassOnce (PassRegistry & Registry)

    Defined at line 114 of file llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp

  • unsigned int getADDriOpcode (bool IsLP64)

    Defined at line 114 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • MachineInstrBuilder InsertNewDef (unsigned int Opcode, MachineBasicBlock * BB, int I, VRegAttrs RegAttrs, MachineRegisterInfo * MRI, const TargetInstrInfo * TII)

    InsertNewDef - Insert an empty PHI or IMPLICIT_DEF instruction which define

    a value of the given register class at the start of the specified basic

    block. It returns the virtual register defined by the instruction.

    Defined at line 114 of file llvm/lib/CodeGen/MachineSSAUpdater.cpp

  • optional getFrameLayout (Function * Resume)

    Given a resume function

    .resume(%f.frame* %frame), returns the size

    and expected alignment of %f.frame type.

    Defined at line 114 of file llvm/lib/Transforms/Coroutines/CoroElide.cpp

  • CPUType mapArchToCVCPUType (ArchType Type)

    Defined at line 114 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • SmallVector canonicalizeDwarfOperations (ArrayRef WorkingOps)

    This function will canonicalize:

    1. DW_OP_plus_uconst to DW_OP_constu

    <const

    -val> DW_OP_plus

    2. DW_OP_lit

    <n

    > to DW_OP_constu

    <n

    >

    Defined at line 114 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • void findPartitions (Module & M, ClusterIDMapType & ClusterIDMap, unsigned int N)

    Find partitions for module in the way that no locals need to be

    globalized.

    Try to balance pack those partitions into N files since this roughly equals

    thread balancing for the backend codegen step.

    Defined at line 114 of file llvm/lib/Transforms/Utils/SplitModule.cpp

  • Function * doPromotion (Function * F, FunctionAnalysisManager & FAM, const int & ArgsToPromote)

    DoPromotion - This method actually performs the promotion of the specified

    arguments, and returns the new function. At this point, we know that it's

    safe to do so.

    Defined at line 114 of file llvm/lib/Transforms/IPO/ArgumentPromotion.cpp

  • LLVMBool LLVMTargetHasAsmBackend (LLVMTargetRef T)

    Returns if the target as an ASM backend (required for emitting output)

    Defined at line 115 of file llvm/lib/Target/TargetMachineC.cpp

  • void LLVMInitializeAllAsmParsers ()

    LLVMInitializeAllAsmParsers - The main program should call this function if

    it wants all asm parsers that LLVM is configured to support, to make them

    available via the TargetRegistry.

    Defined at line 115 of file llvm/include/llvm-c/Target.h

  • void LLVMInitializeAllAsmParsers ()

    LLVMInitializeAllAsmParsers - The main program should call this function if

    it wants all asm parsers that LLVM is configured to support, to make them

    available via the TargetRegistry.

    Defined at line 115 of file llvm/include/llvm-c/Target.h

  • ValueAsMetadata * getAsMetadata (Value * V)

    Defined at line 115 of file llvm/lib/IR/IntrinsicInst.cpp

  • bool setOnlyAccessesArgMemory (Function & F)

    Defined at line 115 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Expected<Triple> readTargetTriple (StringRef FileName)

    Defined at line 115 of file llvm/tools/llvm-dwp/llvm-dwp.cpp

  • const SCEV * getNarrowestLatchMaxTakenCountEstimate (ScalarEvolution & SE, const Loop & L)

    Returns estimate for max latch taken count of the loop of the narrowest

    available type. If the latch block has such estimate, it is returned.

    Otherwise, we use max exit count of whole loop (that is potentially of wider

    type than latch check itself), which is still better than no estimate.

    Defined at line 115 of file llvm/lib/Transforms/Utils/LoopConstrainer.cpp

  • void dumpResult (const MachineInstr & MI, const KnownBits & Known, unsigned int Depth)

    Defined at line 115 of file llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp

  • bool extendsConvergenceOutsideLoop (const Instruction & I, const Loop * L)

    Defined at line 115 of file llvm/lib/Analysis/CodeMetrics.cpp

  • uint32_t handleDataMember (ArrayRef Data, uint32_t Offset, SmallVectorImpl<TiReference> & Refs)

    Defined at line 115 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • WrapperFunctionBuffer voidNoopAsyncWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 115 of file llvm/unittests/ExecutionEngine/Orc/WrapperFunctionUtilsTest.cpp

  • Value * simplifyCmpSelCase (CmpPredicate Pred, Value * LHS, Value * RHS, Value * Cond, const SimplifyQuery & Q, unsigned int MaxRecurse, Constant * TrueOrFalse)

    Simplify comparison with true or false branch of select:

    %sel = select i1 %cond, i32 %tv, i32 %fv

    %cmp = icmp sle i32 %sel, %rhs

    Compose new comparison by substituting %sel with either %tv or %fv

    and see if it simplifies.

    Defined at line 115 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void insertSignalHandler (sys::SignalHandlerCallback FnPtr, void * Cookie)

    Signal-safe.

    Defined at line 115 of file llvm/lib/Support/Signals.cpp

  • basic_string getTypeName (IFSSymbolType Type)

    Defined at line 115 of file llvm/tools/llvm-ifs/llvm-ifs.cpp

  • void replace (Module & M, GlobalVariable * Old, GlobalVariable * New)

    Defined at line 115 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp

  • TargetPassConfig * addPassesToGenerateCode (CodeGenTargetMachineImpl & TM, PassManagerBase & PM, bool DisableVerify, MachineModuleInfoWrapperPass & MMIWP)

    addPassesToX helper drives creation and initialization of TargetPassConfig.

    Defined at line 115 of file llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp

  • bool processSelect (SelectInst * S, LazyValueInfo * LVI)

    Defined at line 115 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void handle_line (char ** tokens, int ntokens)

    Defined at line 115 of file llvm/tools/llvm-c-test/calc.c

  • bool eliminateAvailableExternally (Module & M, bool Convert)

    Defined at line 115 of file llvm/lib/Transforms/IPO/ElimAvailExtern.cpp

  • bool CanProveNotTakenFirstIteration (const BasicBlock * ExitBlock, const DominatorTree * DT, const Loop * CurLoop)

    Return true if we can prove that the given ExitBlock is not reached on the

    first iteration of the given loop. That is, the backedge of the loop must

    be executed before the ExitBlock is executed in any dynamic execution trace.

    Defined at line 115 of file llvm/lib/Analysis/MustExecute.cpp

  • Register performCopyPropagation (Register Reg, int & RI, bool & IsKill, const TargetInstrInfo & TII, const TargetRegisterInfo & TRI)

    Try to eliminate redundant copy to register which we're going to

    spill, i.e. try to change:

    X = COPY Y

    SPILL X

    to

    SPILL Y

    If there are no uses of X between copy and STATEPOINT, that COPY

    may be eliminated.

    Reg - register we're about to spill

    RI - On entry points to statepoint.

    On successful copy propagation set to new spill point.

    IsKill - set to true if COPY is Kill (there are no uses of Y)

    Returns either found source copy register or original one.

    Defined at line 115 of file llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp

  • SmallPtrSet findBBsToSinkInto (const Loop & L, const SmallPtrSetImpl<BasicBlock *> & UseBBs, const SmallVectorImpl<BasicBlock *> & ColdLoopBBs, DominatorTree & DT, BlockFrequencyInfo & BFI)

    Return a set of basic blocks to insert sinked instructions.

    The returned set of basic blocks (BBsToSinkInto) should satisfy:

    * Inside the loop

    * For each UseBB in

    there is at least one BB in BBsToSinkInto

    that domintates the UseBB

    * Has minimum total frequency that is no greater than preheader frequency

    The purpose of the function is to find the optimal sinking points to

    minimize execution cost, which is defined as "sum of frequency of

    BBsToSinkInto".

    As a result, the returned BBsToSinkInto needs to have minimum total

    frequency.

    Additionally, if the total frequency of BBsToSinkInto exceeds preheader

    frequency, the optimal solution is not sinking (return empty set).

    is used to help find the optimal sinking locations.

    It stores a list of BBs that is:

    * Inside the loop

    * Has a frequency no larger than the loop's preheader

    * Sorted by BB frequency

    The complexity of the function is O(UseBBs.size() * ColdLoopBBs.size()).

    To avoid expensive computation, we cap the maximum UseBBs.size() in its

    caller.

    Defined at line 115 of file llvm/lib/Transforms/Scalar/LoopSink.cpp

  • Value * simplifyX86immShift (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Defined at line 115 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • void NewSDValueDbgMsg (SDValue V, StringRef Msg, SelectionDAG * G)

    Defined at line 116 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • Expected getMachoCPUFromTriple (StringRef TT)

    Defined at line 116 of file llvm/lib/Object/MachOUniversalWriter.cpp

  • void reportErrorAndExit ()

    Defined at line 116 of file llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/LLJITWithExecutorProcessControl.cpp

  • bool isSplat (Value * V)

    Return true if V is a splat of a value (which is used when multiplying a

    matrix with a scalar).

    Defined at line 116 of file llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

  • Value * CreateVScaleMultiple (IRBuilderBase & B, Type * Ty, uint64_t Scale)

    Defined at line 116 of file llvm/lib/IR/IRBuilder.cpp

  • LLVMDisasmContextRef LLVMCreateDisasmCPU (const char * Triple, const char * CPU, void * DisInfo, int TagType, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp)

    Create a disassembler for the TripleName and a specific CPU. Symbolic

    disassembly is supported by passing a block of information in the DisInfo

    parameter and specifying the TagType and callback functions as described

    above. These can all be passed * as NULL. If successful, this returns a

    disassembler context. If not, it returns NULL. This function is equivalent

    to calling LLVMCreateDisasmCPUFeatures() with an empty feature set.

    Defined at line 116 of file llvm/lib/MC/MCDisassembler/Disassembler.cpp

  • basic_string getParamName2 (const testing::TestParamInfo<ParseValid::ParamType> & Info)

    Defined at line 116 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • unsigned int CombineSymbolTypes (unsigned int T1, unsigned int T2)

    When GNU as encounters more than one .type declaration for an object it seems

    to use a mechanism similar to the one below to decide which type is actually

    used in the object file. The greater of T1 and T2 is selected based on the

    following ordering:

    STT_NOTYPE

    <

    STT_OBJECT

    <

    STT_FUNC

    <

    STT_GNU_IFUNC

    <

    STT_TLS

    <

    anything else

    If neither T1

    <

    T2 nor T2

    <

    T1 according to this ordering, use T2 (the user

    provided type).

    Defined at line 116 of file llvm/lib/MC/MCELFStreamer.cpp

  • void printRegisterLocations (const RegisterLocations & RL, raw_ostream & OS, DIDumpOptions DumpOpts)

    Print all registers + locations that are currently defined in a register

    locations.

    Parameters

    RL the register locations to print.
    OS the stream to use for output.
    MRI register information that helps emit register names insteead of raw register numbers.
    IsEH true if the DWARF Call Frame Information is from .eh_frame instead of from .debug_frame. This is needed for register number conversion because some register numbers differ between the two sections for certain architectures like x86.

    Defined at line 116 of file llvm/lib/DebugInfo/DWARF/DWARFUnwindTablePrinter.cpp

  • void handlePhiDef (CallInst * Expect)

    Handler for PHINodes that define the value argument to an

    .expect call.

    If the operand of the phi has a constant value and it 'contradicts'

    with the expected value of phi def, then the corresponding incoming

    edge of the phi is unlikely to be taken. Using that information,

    the branch probability info for the originating branch can be inferred.

    Defined at line 116 of file llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp

  • unsigned int getMaxWidth (const APInt & A, const APInt & B)

    Defined at line 117 of file llvm/lib/Support/SlowDynamicAPInt.cpp

  • template <typename Container>
    auto keys (Container && C)

    ===- Misc. Helpers -----------------------------------------------------===//

    Defined at line 117 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • LocationDescriptor layout (BlobAllocator & File, BinaryRef Data)

    Defined at line 117 of file llvm/lib/ObjectYAML/MinidumpEmitter.cpp

  • bool EventNumberLess (const ValidationCounterInfo & LHS, const ValidationCounterInfo & RHS)

    Defined at line 117 of file llvm/utils/TableGen/ExegesisEmitter.cpp

  • Constant * foldMaybeUndesirableCast (unsigned int opc, Constant * V, Type * DestTy)

    Defined at line 117 of file llvm/lib/IR/ConstantFold.cpp

  • Instruction * getFirstNonAllocaInTheEntryBlock (Function & F)

    Defined at line 117 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • bool checkSymbolEquality (iterator_range LHS, iterator_range RHS)

    Defined at line 117 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • Expected createInMemoryBuffer (StringRef Path, size_t Size, unsigned int Mode)

    Defined at line 117 of file llvm/lib/Support/FileOutputBuffer.cpp

  • uint64_t getCurInstructionsExecuted ()

    Defined at line 117 of file llvm/lib/Support/Timer.cpp

  • bool isEligibleInstructionForConstantSharing (const Instruction * I)

    Defined at line 117 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • Value * tryReplaceCallWithLoadStore (Oracle & O, Module & M, CallBase * CB)

    TODO: Replace 2 pointer argument calls with memcpy

    Defined at line 117 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp

  • Expected<ResultOperand> matchComplexOperand (const Init * Arg, const StringInit * ArgName, const Record * Op)

    Defined at line 117 of file llvm/utils/TableGen/Common/CodeGenInstAlias.cpp

  • error_code getSymbol (const COFFObjectFile & COFF, uint64_t VA, object::SymbolRef & Sym)

    Defined at line 117 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • Error hasInvalidBitcodeHeader (BitstreamCursor & Stream)

    Defined at line 117 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • LLVMBool LLVMParseIRInContext (LLVMContextRef ContextRef, LLVMMemoryBufferRef MemBuf, LLVMModuleRef * OutM, char ** OutMessage)

    Read LLVM IR from a memory buffer and convert it into an in-memory Module

    object. Returns 0 on success.

    Optionally returns a human-readable description of any errors that

    occurred during parsing IR. OutMessage must be disposed with

    LLVMDisposeMessage.

    Defined at line 117 of file llvm/lib/IRReader/IRReader.cpp

  • void initializePostDomOnlyViewerWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 118 of file llvm/lib/Analysis/DomPrinter.cpp

  • void initializeX86FlagsCopyLoweringPassPassOnce (PassRegistry & Registry)

    Defined at line 118 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp

  • unsigned int getSUBrrOpcode (bool IsLP64)

    Defined at line 118 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • void LLVMViewFunctionCFGOnly (LLVMValueRef Fn)

    Defined at line 118 of file llvm/lib/Analysis/Analysis.cpp

  • bool isIdentifierChar (char C)

    Return true if the given character satisfies the following regular

    expression: [-a-zA-Z$._0-9]

    Defined at line 118 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • nlist_base getSymbolTableEntryBase (const MachOObjectFile & O, DataRefImpl DRI)

    Defined at line 118 of file llvm/lib/Object/MachOObjectFile.cpp

  • basic_string computeLoongArchDataLayout (const Triple & TT)

    Defined at line 118 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • int writeLimits (const WasmYAML::Limits & Lim, raw_ostream & OS)

    Defined at line 118 of file llvm/lib/ObjectYAML/WasmEmitter.cpp

  • Instruction * findCommonDominator (ArrayRef Instructions, DominatorTree & DT)

    Find a point in code which dominates all given instructions. We can safely

    assume that, whatever fact we can prove at the found point, this fact is

    also true for each of the given instructions.

    Defined at line 118 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp

  • ConstantFPRange makeLessThan (APFloat V, Predicate Pred)

    Return [-inf, V) or [-inf, V]

    Defined at line 118 of file llvm/lib/IR/ConstantFPRange.cpp

  • void clearModule (Module & M)

    Defined at line 118 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • bool isOnlyUsedInEqualityComparison (Value * V, Value * With)

    Return true if it is only used in equality comparisons with With.

    Defined at line 118 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • template <typename EndianT>
    Error readArray (ArrayRef Data, uint64_t Count, uint64_t & Offset, SmallVectorImpl<int32_t> & Vec)

    Defined at line 118 of file llvm/lib/Object/SFrameParser.cpp

  • bool SplitCriticalEdges (ArrayRef CBRs, DominatorTree & DT)

    Defined at line 118 of file llvm/lib/CodeGen/CallBrPrepare.cpp

  • LLVMPassBuilderOptionsRef LLVMCreatePassBuilderOptions ()

    Create a new set of options for a PassBuilder

    Ownership of the returned instance is given to the client, and they are

    responsible for it. The client should call LLVMDisposePassBuilderOptions

    to free the pass builder options.

    Defined at line 119 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • LLVMBool LLVMCreateInterpreterForModule (LLVMExecutionEngineRef * OutInterp, LLVMModuleRef M, char ** OutError)

    Defined at line 118 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • template <typename CallbackType>
    void parseCondition (Value * Condition, CallbackType RecordCheckOrWidenableCond)

    Defined at line 118 of file llvm/lib/Analysis/GuardUtils.cpp

  • bool runPartiallyInlineLibCalls (Function & F, TargetLibraryInfo * TLI, const TargetTransformInfo * TTI, DominatorTree * DT, OptimizationRemarkEmitter * ORE)

    Defined at line 118 of file llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp

  • bool performCustomAdjustments (MachineInstr & MI, unsigned int NewOpc)

    Do any custom cleanup needed to finalize the conversion.

    Defined at line 118 of file llvm/lib/Target/X86/X86CompressEVEX.cpp

  • bool mutationIsSane (const LegalizeRule & Rule, const LegalityQuery & Q, std::pair<unsigned int, LLT> Mutation)

    Make sure the returned mutation makes sense for the match type.

    Defined at line 118 of file llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp

  • LLVMTargetMachineOptionsRef LLVMCreateTargetMachineOptions ()

    ===-- Target Machine ----------------------------------------------------===

    Create a new set of options for an llvm::TargetMachine.

    The returned option structure must be released with

    LLVMDisposeTargetMachineOptions() after the call to

    LLVMCreateTargetMachineWithOptions().

    Defined at line 119 of file llvm/lib/Target/TargetMachineC.cpp

  • void addCallsiteMetadata (Instruction & I, ArrayRef InlinedCallStack, LLVMContext & Ctx)

    Defined at line 119 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • bool getVal (MDTuple * MD, const char * Key, uint64_t & Val)

    Parse an MDTuple representing (Key, Val) pair.

    Defined at line 119 of file llvm/lib/IR/ProfileSummary.cpp

  • bool partitionOuterLoopBlocks (Loop * L, Loop * SubLoop, BasicBlockSet & ForeBlocks, BasicBlockSet & SubLoopBlocks, BasicBlockSet & AftBlocks, DominatorTree * DT)

    TODO Remove when UnrollAndJamLoop changed to support unroll and jamming more

    than 2 levels loop.

    Defined at line 119 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • bool isStructurallyValidScheme (StringRef Scheme)

    Returns true if the given scheme is structurally valid, i.e. it does not

    contain any invalid scheme characters. This does not check that the scheme

    is actually supported.

    Defined at line 119 of file llvm/lib/Support/LSP/Protocol.cpp

  • void executeFSubInst (GenericValue & Dest, GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 119 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • const MCExpr * makeEndMinusStartExpr (MCContext & Ctx, const MCSymbol & Start, const MCSymbol & End, int IntVal)

    This helper routine returns an expression of End - Start - IntVal .

    Defined at line 119 of file llvm/lib/MC/MCDwarf.cpp

  • template <IR IRTy>
    void BBWalk (benchmark::State & State)

    Defined at line 119 of file llvm/benchmarks/SandboxIRBench.cpp

  • bool RedirectIO_PS (const std::string * Path, int FD, std::string * ErrMsg, posix_spawn_file_actions_t * FileActions)

    Defined at line 119 of file llvm/lib/Support/Unix/Program.inc

  • void lto_initialize ()

    Initialize the configured targets if they have not been initialized.

    Defined at line 119 of file llvm/tools/lto/lto.cpp

  • void initializeBranchFolderLegacyPassOnce (PassRegistry & Registry)

    Defined at line 120 of file llvm/lib/CodeGen/BranchFolding.cpp

  • pair getMachoCPUFromObjectFile (const MachOObjectFile & O)

    Defined at line 120 of file llvm/lib/Object/MachOUniversalWriter.cpp

  • bool testTagString (unsigned int Tag, const char * name)

    Defined at line 120 of file llvm/unittests/Support/CSKYAttributeParserTest.cpp

  • bool isDebugSSection (SectionRef Section, DebugSubsectionArray & Subsections)

    Defined at line 120 of file llvm/lib/DebugInfo/PDB/Native/InputFile.cpp

  • VisibilityTypes getMinVisibility (VisibilityTypes A, VisibilityTypes B)

    Defined at line 120 of file llvm/lib/Linker/LinkModules.cpp

  • const Init * QualifyName (const Record & CurRec, const Init * Name)

    Return an Init with a qualifier prefix referring

    to CurRec's name.

    Defined at line 120 of file llvm/lib/TableGen/TGParser.cpp

  • void dumpStream (yaml::Stream & stream)

    Defined at line 120 of file llvm/utils/yaml-bench/YAMLBench.cpp

  • Instruction * getEffectiveTerminator (BasicBlock & BB)

    Defined at line 120 of file llvm/lib/FuzzMutate/IRMutator.cpp

  • void memDestroy (void * Opaque)

    Defined at line 120 of file llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c

  • pair determineOutputType (bool IsMIR, bool InputIsBitcode)

    Defined at line 120 of file llvm/tools/llvm-reduce/llvm-reduce.cpp

  • int llvm_module_list_globals ()

    Defined at line 120 of file llvm/tools/llvm-c-test/module.c

  • bool StripSymbolNames (Module & M, bool PreserveDbgInfo)

    StripSymbolNames - Strip symbol names.

    Defined at line 120 of file llvm/lib/Transforms/IPO/StripSymbols.cpp

  • tuple convertToRGB (const std::tuple<double, double, double> & Color)

    Takes a typle of doubles representing a color in HSV and converts them to

    RGB represented as a tuple of uint8_ts

    Defined at line 120 of file llvm/tools/llvm-xray/xray-color-helper.cpp

  • bool byteArrayFromString (ByteArrayTy & ByteArray, StringRef & Str, SourceMgr & SM, bool HexBytes)

    Defined at line 120 of file llvm/tools/llvm-mc/Disassembler.cpp

  • bool findRefEdges (ModuleSummaryIndex & Index, const User * CurUser, SetVector<ValueInfo, SmallVector<ValueInfo, 0>> & RefEdges, SmallPtrSet<const User *, 8> & Visited, bool & RefLocalLinkageIFunc)

    Walk through the operands of a given User via worklist iteration and populate

    the set of GlobalValue references encountered. Invoked either on an

    Instruction or a GlobalVariable (which walks its initializer).

    Return true if any of the operands contains blockaddress. This is important

    to know when computing summary for global var, because if global variable

    references basic block address we can't import it separately from function

    containing that basic block. For simplicity we currently don't import such

    global vars at all. When importing function we aren't interested if any

    instruction in it takes an address of any basic block, because instruction

    can only take an address of basic block located in the same function.

    Set `RefLocalLinkageIFunc` to true if the analyzed value references a

    local-linkage ifunc.

    Defined at line 120 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • void initializeCheckDebugMachineModulePassOnce (PassRegistry & Registry)

    Defined at line 121 of file llvm/lib/CodeGen/MachineCheckDebugify.cpp

  • bool hasUnrollAndJamEnablePragma (const Loop * L)

    Returns true if the loop has an unroll_and_jam(enable) pragma.

    Defined at line 121 of file llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp

  • template <typename Container>
    auto values (Container && C)

    Defined at line 121 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • void initializeRenameIndependentSubregsLegacyPassOnce (PassRegistry & Registry)

    Defined at line 121 of file llvm/lib/CodeGen/RenameIndependentSubregs.cpp

  • template <class T, class U>
    void setMinMax (std::pair<T, T> & MM, U && V)

    Defined at line 121 of file llvm/tools/llvm-xray/xray-account.cpp

  • void * replaceAllocation (void * NewElts, size_t TSize, size_t NewCapacity, size_t VSize)

    If vector was first created with capacity 0, getFirstEl() points to the

    memory right after, an area unallocated. If a subsequent allocation,

    that grows the vector, happens to return the same pointer as getFirstEl(),

    get a new allocation, otherwise isSmall() will falsely return that no

    allocation was done (true) and the memory will not be freed in the

    destructor. If a VSize is given (vector size), also copy that many

    elements to the new allocation - used if realloca fails to increase

    space, and happens to allocate precisely at BeginX.

    This is unlikely to be called often, but resolves a memory leak when the

    situation does occur.

    Defined at line 121 of file llvm/lib/Support/SmallVector.cpp

  • void enableDebuginfod (LLVMSymbolizer & Symbolizer, const opt::ArgList & Args)

    Defined at line 121 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • void generateEnumBitmask (ArrayRef Records, raw_ostream & OS, StringRef Enum, StringRef Prefix, bool ExportEnums)

    Generate enum class with values corresponding to different bit positions.

    Entries are emitted in the order in which they appear in the `Records`

    vector.

    Defined at line 121 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • bool isObjectSmallerThan (const Value * V, TypeSize Size, const DataLayout & DL, const TargetLibraryInfo & TLI, bool NullIsValidLoc)

    Returns true if we can prove that the object specified by V is smaller than

    Size. Bails out early unless the root object is passed as the first

    parameter.

    Defined at line 121 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • StringRef getElementTypeNameForTemplate (ElementType ET)

    Defined at line 121 of file llvm/lib/Analysis/DXILResource.cpp

  • unsigned int getADDrrOpcode (bool IsLP64)

    Defined at line 122 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • unsigned int nextAPIntBitWidth (unsigned int BitWidth)

    Defined at line 122 of file llvm/lib/FileCheck/FileCheck.cpp

  • void initializeX86AvoidSFBPassPassOnce (PassRegistry & Registry)

    Defined at line 122 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • bool setOnlyAccessesInaccessibleMemOrArgMem (Function & F)

    Defined at line 122 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void fatalOpenError (Error E, Twine File)

    Defined at line 122 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • optional findInsertionPointForWideCondition (Instruction * WCOrGuard)

    Find a point at which the widened condition of

    should be inserted.

    When it is represented as intrinsic call, we can do it right before the call

    instruction. However, when we are dealing with widenable branch, we must

    account for the following situation: widening should not turn a

    loop-invariant condition into a loop-variant. It means that if

    widenable.condition() call is invariant (w.r.t. any loop), the new wide

    condition should stay invariant. Otherwise there can be a miscompile, like

    the one described at https://github.com/llvm/llvm-project/issues/60234. The

    safest way to do it is to expand the new condition at WC's block.

    Defined at line 122 of file llvm/lib/Transforms/Scalar/GuardWidening.cpp

  • StringRef readString (WasmObjectFile::ReadContext & Ctx)

    Defined at line 122 of file llvm/lib/Object/WasmObjectFile.cpp

  • xmlNsPtr search (const unsigned char * HRef, xmlNodePtr Node)

    Search for prefix-defined namespace specified by HRef, starting on Node and

    continuing recursively upwards. Returns the namespace or nullptr if not

    found.

    Defined at line 122 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • bool maySpeculateLanes (VPIntrinsic & VPI)

    Defined at line 122 of file llvm/lib/CodeGen/ExpandVectorPredication.cpp

  • ParseRet tryParseLinearTokenWithRuntimeStep (StringRef & ParseString, VFParamKind & PKind, int & Pos, StringRef Token)

    The function looks for the following strings at the beginning of

    the input string `ParseString`:

    <token

    >

    <number

    >

    On success, it removes the parsed parameter from `ParseString`,

    sets `PKind` to the correspondent enum value, sets `Pos` to

    <number

    >, and return success. On a syntax error, it return a

    parsing error. If nothing is parsed, it returns std::nullopt.

    The function expects

    <token

    > to be one of "ls", "Rs", "Us" or

    "Ls".

    Defined at line 122 of file llvm/lib/IR/VFABIDemangler.cpp

  • bool getShuffleDemandedElts (const ShuffleVectorInst * Shuf, const APInt & DemandedElts, APInt & DemandedLHS, APInt & DemandedRHS)

    Defined at line 122 of file llvm/lib/Analysis/ValueTracking.cpp

  • const char * regatoi (const llvm_regex_t * , char * , int )

    - regatoi - internal routine to implement REG_ATOI

    Defined at line 122 of file llvm/lib/Support/regerror.c

  • size_t layout (BlobAllocator & File, MinidumpYAML::ExceptionStream & S)

    Defined at line 122 of file llvm/lib/ObjectYAML/MinidumpEmitter.cpp

  • bool isPushPop (const MachineInstr & MI)

    Defined at line 122 of file llvm/lib/Target/X86/X86DynAllocaExpander.cpp

  • Expected callObjCopy (ConfigManager & Config, object::Binary & In, SmallVector<char> & DataVector, function_ref IsValidFormat)

    Call objcopy::executeObjcopyOnBinary for

    and

    is a holder for data.

    Defined at line 122 of file llvm/unittests/ObjCopy/ObjCopyTest.cpp

  • SmallVector getWorklist (Function & F)

    Find matching pairs of integer div/rem ops (they have the same numerator,

    denominator, and signedness). Place those pairs into a worklist for further

    processing. This indirection is needed because we have to use TrackingVH

    <

    >

    because we will be doing RAUW, and if one of the rem instructions we change

    happens to be an input to another div/rem in the maps, we'd have problems.

    Defined at line 122 of file llvm/lib/Transforms/Scalar/DivRemPairs.cpp

  • SDValue emitConstantSizeRepstos (SelectionDAG & DAG, const X86Subtarget & Subtarget, const SDLoc & dl, SDValue Chain, SDValue Dst, SDValue Val, uint64_t Size, EVT SizeVT, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo)

    Returns a REP STOS instruction, possibly with a few load/stores to implement

    a constant size memory set. In some cases where we know REP MOVS is

    inefficient we return an empty SDValue so the calling code can either

    generate a store sequence or call the runtime memset function.

    Defined at line 122 of file llvm/lib/Target/X86/X86SelectionDAGInfo.cpp

  • void LLVMPassBuilderOptionsSetVerifyEach (LLVMPassBuilderOptionsRef Options, LLVMBool VerifyEach)

    Toggle adding the VerifierPass for the PassBuilder, ensuring all functions

    inside the module is valid.

    Defined at line 123 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • void LLVMDisposeTargetMachineOptions (LLVMTargetMachineOptionsRef Options)

    Dispose of an LLVMTargetMachineOptionsRef instance.

    Defined at line 123 of file llvm/lib/Target/TargetMachineC.cpp

  • bool shouldPrintBeforeOrAfterPass (StringRef PassID, ArrayRef PassesToPrint)

    Defined at line 123 of file llvm/lib/IR/PrintPasses.cpp

  • unsigned int getBitWidth (Type * Ty, const DataLayout & DL)

    Returns the bitwidth of the given scalar or pointer type. For vector types,

    returns the element type's bitwidth.

    Defined at line 123 of file llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp

  • bool isLeakCheckerRoot (GlobalVariable * GV)

    Is this global variable possibly used by a leak checker as a root? If so,

    we might not really want to eliminate the stores to it.

    Defined at line 123 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • int llvm_dwp_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 123 of file llvm/tools/llvm-dwp/llvm-dwp.cpp

  • void initializeWinEHPreparePassOnce (PassRegistry & Registry)

    Defined at line 124 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • void initializeWinEHStatePassPassOnce (PassRegistry & Registry)

    Defined at line 124 of file llvm/lib/Target/X86/X86WinEHState.cpp

  • basic_string gtest_DirectiveNameParserTestParseValid_EvalGenerateName_ (const ::testing::TestParamInfo<ParseValid::ParamType> & info)

    Defined at line 124 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • ParamGenerator gtest_DirectiveNameParserTestParseValid_EvalGenerator_ ()

    Defined at line 124 of file llvm/unittests/Frontend/OpenMPDirectiveNameParserTest.cpp

  • template <typename LTy, typename RTy>
    auto m_AnyMul (const LTy & L, const RTy & R)

    Match any mul operation (fp or integer).

    Defined at line 124 of file llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

  • LLVMBool LLVMGetBitcodeModule (LLVMMemoryBufferRef MemBuf, LLVMModuleRef * OutM, char ** OutMessage)

    This is deprecated. Use LLVMGetBitcodeModule2.

    Defined at line 124 of file llvm/lib/Bitcode/Reader/BitReader.cpp

  • void LLVMInitializeAllDisassemblers ()

    LLVMInitializeAllDisassemblers - The main program should call this function

    if it wants all disassemblers that LLVM is configured to support, to make

    them available via the TargetRegistry.

    Defined at line 124 of file llvm/include/llvm-c/Target.h

  • void LLVMInitializeAllDisassemblers ()

    LLVMInitializeAllDisassemblers - The main program should call this function

    if it wants all disassemblers that LLVM is configured to support, to make

    them available via the TargetRegistry.

    Defined at line 124 of file llvm/include/llvm-c/Target.h

  • LLVMDisasmContextRef LLVMCreateDisasm (const char * TripleName, void * DisInfo, int TagType, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp)

    Create a disassembler for the TripleName. Symbolic disassembly is supported

    by passing a block of information in the DisInfo parameter and specifying the

    TagType and callback functions as described above. These can all be passed

    as NULL. If successful, this returns a disassembler context. If not, it

    returns NULL. This function is equivalent to calling

    LLVMCreateDisasmCPUFeatures() with an empty CPU name and feature set.

    Defined at line 124 of file llvm/lib/MC/MCDisassembler/Disassembler.cpp

  • size_t argPlusPrefixesSize (StringRef ArgName, size_t Pad)

    Defined at line 124 of file llvm/lib/Support/CommandLine.cpp

  • Instruction * getFirstNonAllocaInTheEntryBlock (Function * F)

    Finds first non alloca instruction in the entry block of a function.

    Defined at line 124 of file llvm/lib/Transforms/Coroutines/CoroElide.cpp

  • void * findLastDebugDescriptorEntryPtr ()

    Defined at line 124 of file llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp

  • StringRef parseSegmentOrSectionName (const char * P)

    Defined at line 124 of file llvm/lib/Object/MachOObjectFile.cpp

  • bool noDuplicateRulesAndIgnore (ArrayRef Rules)

    Defined at line 124 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • CallInst * InsertCall (BuilderTy & IRB, bool MayReturn, StringRef Name)

    Defined at line 124 of file llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp

  • void printKnownBits (raw_ostream & OS, const KnownBits & Bits, char Unknown)

    Similar to KnownBits::print(), but allows you to specify a character to use

    to print unknown bits.

    Defined at line 124 of file llvm/utils/TableGen/DecoderEmitter.cpp

  • basic_string searchForObj (StringRef Path, StringRef Extension)

    Search for a matching object image for the given PDB path.

    Defined at line 124 of file llvm/lib/DebugInfo/LogicalView/LVReaderHandler.cpp

  • bool needToInsertPhisForLCSSA (Loop * L, const std::vector<BasicBlock *> & Blocks, LoopInfo * LI)

    Check if unrolling created a situation where we need to insert phi nodes to

    preserve LCSSA form.

    Parameters

    Blocks is a vector of basic blocks representing unrolled loop.
    L is the outer loop. It's possible that some of the blocks are in L, and some are not. In this case, if there is a use is outside L, and definition is inside L, we need to insert a phi-node, otherwise LCSSA will be broken. The function is just a helper function for llvm::UnrollLoop that returns true if this situation occurs, indicating that LCSSA needs to be fixed.

    Defined at line 124 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • Value * getRowFromCol (Instruction * II, Value * V, unsigned int Granularity)

    Defined at line 124 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • bool hasProcessableCondition (const Loop & L, ScalarEvolution & SE, ICmpInst * ICmp, ConditionInfo & Cond, bool IsExitCond)

    Defined at line 124 of file llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp

  • int llvm_debuginfod_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 124 of file llvm/tools/llvm-debuginfod/llvm-debuginfod.cpp

  • InstrUID decode (OpcodeType type, InstructionContext insnContext, uint8_t opcode, uint8_t modRM)

    Defined at line 124 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • Error executeObjcopy (ConfigManager & ConfigMgr)

    The function executeObjcopy does the higher level dispatch based on the type

    of input (raw binary, archive or single object file) and takes care of the

    format-agnostic modifications, i.e. preserving dates.

    Defined at line 124 of file llvm/tools/llvm-objcopy/llvm-objcopy.cpp

  • bool rescheduleCanonically (unsigned int & PseudoIdempotentInstCount, MachineBasicBlock * MBB)

    Defined at line 124 of file llvm/lib/CodeGen/MIRCanonicalizerPass.cpp

  • template <endianness Endian>
    HalfWords makeHalfWords (array Mem)

    Big-endian for v7 and v8 (and v6 unless in legacy backwards compatible mode

    be32) have little-endian instructions and big-endian data. In ELF relocatable

    objects big-endian instructions may still be encountered. A be8 supporting

    linker is expected to endian-reverse instructions for the executable.

    Defined at line 125 of file llvm/unittests/ExecutionEngine/JITLink/AArch32Tests.cpp

  • uint64_t hash (StringRef Str)

    StringMap uses xxh3_64bits, truncated to uint32_t.

    Defined at line 125 of file llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp

  • basic_string getIsEnabledPredicateEnumName (unsigned int CombinerRuleID)

    Defined at line 125 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • void printRegMIR (Register Reg, yaml::StringValue & Dest, const TargetRegisterInfo * TRI)

    Defined at line 125 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • bool runImpl (const TargetLibraryInfo & TLI, Function & F)

    Defined at line 125 of file llvm/lib/Transforms/Utils/InjectTLIMappings.cpp

  • Function * createRetFunction (Module * M, StringRef Name, uint32_t ReturnCode)

    Defined at line 125 of file llvm/unittests/ExecutionEngine/Orc/ReOptimizeLayerTest.cpp

  • void hash_one_portable (const uint8_t * input, size_t blocks, const uint32_t[8] key, uint64_t counter, uint8_t flags, uint8_t flags_start, uint8_t flags_end, uint8_t[32] out)

    Defined at line 125 of file llvm/lib/Support/BLAKE3/blake3_portable.c

  • void addLocAccess (MemoryEffects & ME, const MemoryLocation & Loc, ModRefInfo MR, AAResults & AAR)

    Defined at line 125 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void chunk_state_update (llvm_blake3_chunk_state * self, const uint8_t * input, size_t input_len)

    Defined at line 125 of file llvm/lib/Support/BLAKE3/blake3.c

  • basic_string computeM68kDataLayout (const Triple & TT)

    Defined at line 125 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • unsigned int getANDriOpcode (bool IsLP64, int64_t Imm)

    Defined at line 126 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • void initializeConstantHoistingLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 126 of file llvm/lib/Transforms/Scalar/ConstantHoisting.cpp

  • void collectUsedGlobals (GlobalVariable * GV, SmallSetVector<Constant *, 16> & Init)

    Defined at line 126 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • uint64_t computeStackId (GlobalValue::GUID Function, uint32_t LineOffset, uint32_t Column)

    Defined at line 126 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • void dumpTLIEntries (const TargetLibraryInfo & TLI)

    Defined at line 126 of file llvm/tools/llvm-tli-checker/llvm-tli-checker.cpp

  • void UnEscapeLexed (std::string & Str)

    UnEscapeLexed - Run through the specified buffer and change

    codes to the

    appropriate character.

    Defined at line 126 of file llvm/lib/AsmParser/LLLexer.cpp

  • basic_string unescapeQuotedString (StringRef Value)

    Unescapes the given string value.

    Expects the string value to be quoted.

    Defined at line 126 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • unsigned int getMaskedICmpType (Value * A, Value * B, Value * C, Predicate Pred)

    Return the set of patterns (from MaskedICmpType) that (icmp SCC (A

    &

    B), C)

    satisfies.

    Defined at line 126 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • int findSurvivorBackwards (const MachineRegisterInfo & MRI, int From, int To, const LiveRegUnits & LiveOut, ArrayRef<MCPhysReg> AllocationOrder, bool RestoreAfter)

    Given the bitvector

    of free register units at position

    Search backwards to find a register that is part of

    and not used/clobbered until the point

    If there is

    multiple candidates continue searching and pick the one that is not used/

    clobbered for the longest time.

    Returns the register and the earliest position we know it to be free or

    the position MBB.end() if no register is available.

    Defined at line 126 of file llvm/lib/CodeGen/RegisterScavenging.cpp

  • void dumpCXXData (const ObjectFile * Obj)

    Defined at line 126 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • void LLVMTargetMachineOptionsSetCPU (LLVMTargetMachineOptionsRef Options, const char * CPU)

    Defined at line 127 of file llvm/lib/Target/TargetMachineC.cpp

  • DIScope * getNonCompileUnitScope (DIScope * N)

    If N is compile unit return NULL otherwise return N.

    Defined at line 127 of file llvm/lib/IR/DIBuilder.cpp

  • template <typename HasherT, llvm::endianness Endianness>
    void addHash (llvm::HashBuilder<HasherT, Endianness> & HBuilder, const SimpleStruct & Value)

    Defined at line 127 of file llvm/unittests/Support/HashBuilderTest.cpp

  • bool getVal (MDTuple * MD, const char * Key, double & Val)

    Defined at line 127 of file llvm/lib/IR/ProfileSummary.cpp

  • APInt toSigned (APInt AbsVal, bool Negative)

    Defined at line 127 of file llvm/lib/FileCheck/FileCheck.cpp

  • uint32_t handleOverloadedMethod (ArrayRef Data, uint32_t Offset, SmallVectorImpl<TiReference> & Refs)

    Defined at line 127 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • unsigned int unrollAndJamCountPragmaValue (const Loop * L)

    If loop has an unroll_and_jam_count pragma return the (necessarily

    positive) value from the pragma. Otherwise return 0.

    Defined at line 127 of file llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp

  • template <typename TargetVecT, typename ValTypeT, typename V>
    void addDiffForTargSlice (V Val, Target Targ, DiffOutput & Diff, InterfaceInputOrder Order)

    Defined at line 127 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • unique_ptr loadFile (const char * argv0, unique_ptr Buffer, LLVMContext & Context, bool MaterializeMetadata)

    Read the specified bitcode file in and return it. This routine searches the

    link path for the specified file to try to find it...

    Defined at line 127 of file llvm/tools/llvm-link/llvm-link.cpp

  • bool splitUstar (StringRef Path, StringRef & Prefix, StringRef & Name)

    Path fits in a Ustar header if

    - Path is less than 100 characters long, or

    - Path is in the form of "<prefix>/<name>" where

    <prefix

    > is less

    than or equal to 155 characters long and

    <name

    > is less than 100

    characters long. Both

    <prefix

    > and

    <name

    > can contain extra '/'.

    If Path fits in a Ustar header, updates Prefix and Name and returns true.

    Otherwise, returns false.

    Defined at line 127 of file llvm/lib/Support/TarWriter.cpp

  • Expected createOnDiskBuffer (StringRef Path, size_t Size, unsigned int Mode)

    Defined at line 127 of file llvm/lib/Support/FileOutputBuffer.cpp

  • Model getEffectiveRelocModel (const Triple & TT, bool JIT, std::optional<Reloc::Model> RM)

    Defined at line 127 of file llvm/lib/Target/X86/X86TargetMachine.cpp

  • Error readGSIHashBuckets (FixedStreamArray<support::ulittle32_t> & HashBuckets, FixedStreamArray<support::ulittle32_t> & HashBitmap, const GSIHashHeader * HashHdr, MutableArrayRef BucketMap, BinaryStreamReader & Reader)

    Defined at line 127 of file llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp

  • void substituteOperandWithArgument (Function * OldF, ArrayRef OpsToReplace)

    Add a new function argument to

    for each use in

    , and

    replace those operand values with the new function argument.

    Defined at line 127 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp

  • void initializeLocalStackSlotPassPassOnce (PassRegistry & Registry)

    Defined at line 128 of file llvm/lib/CodeGen/LocalStackSlotAllocation.cpp

  • template <class T>
    T diff (T L, T R)

    Defined at line 128 of file llvm/tools/llvm-xray/xray-account.cpp

  • void LLVMPassBuilderOptionsSetDebugLogging (LLVMPassBuilderOptionsRef Options, LLVMBool DebugLogging)

    Toggle debug logging when running the PassBuilder

    Defined at line 128 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • const Value * skipMetadataWrapper (const Value * V)

    Look for a value that might be wrapped as metadata, e.g. a value in a

    metadata operand. Returns the input value as-is if it is not wrapped.

    Defined at line 128 of file llvm/lib/IR/AsmWriter.cpp

  • WrapperFunctionBuffer addAsyncWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 128 of file llvm/unittests/ExecutionEngine/Orc/WrapperFunctionUtilsTest.cpp

  • void inlineVolatileOrAtomicWithExtraArgs (bool * Inline, bool Volatile, bool Atomic, DiagnosticInfoIROptimization & R)

    Defined at line 128 of file llvm/lib/Transforms/Utils/MemoryOpRemark.cpp

  • void printProfileTable (raw_ostream & OS, ArrayRef Profiles, bool Experimental)

    Defined at line 128 of file llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  • optional isBigEndian (const int & MemOffset2Idx, int64_t LowestIdx)

    Given a map from byte offsets in memory to indices in a load/store,

    determine if that map corresponds to a little or big endian byte pattern.

    E.g. given a 32-bit type x, and x[AddrOffset], the in-memory byte patterns

    are as follows:

    AddrOffset Little endian Big endian

    0 0 3

    1 1 2

    2 2 1

    3 3 0

    Parameters

    MemOffset2Idx maps memory offsets to address offsets.
    LowestIdx is the lowest index in

    Defined at line 128 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • bool CC_X86_64_VectorCall (unsigned int & ValNo, MVT & ValVT, MVT & LocVT, CCValAssign::LocInfo & LocInfo, ISD::ArgFlagsTy & ArgFlags, CCState & State)

    Vectorcall calling convention has special handling for vector types or

    HVA for 64 bit arch.

    For HVAs shadow registers might be allocated on the first pass

    and actual XMM registers are allocated on the second pass.

    For vector types, actual XMM registers are allocated on the first pass.

    Returns

    true if registers were allocated and false otherwise.

    Defined at line 128 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • void initializeRegAllocScoringPassOnce (PassRegistry & Registry)

    Defined at line 129 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp

  • void initializeX86CallFrameOptimizationPassOnce (PassRegistry & Registry)

    Defined at line 129 of file llvm/lib/Target/X86/X86CallFrameOptimization.cpp

  • const Loop * getOutermostLoop (const LoopInfo * LI, const BasicBlock * BB)

    LoopInfo contains a mapping from basic block to the innermost loop. Find

    the outermost loop in the loop nest that contains BB.

    Defined at line 129 of file llvm/lib/Analysis/CFG.cpp

  • bool callHasFloatingPointArgument (const CallInst * CI)

    Defined at line 129 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void emitHashFunction (raw_ostream & OS)

    Defined at line 129 of file llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp

  • bool setOnlyWritesErrnoMemory (Function & F)

    Defined at line 129 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • unsigned int popcnt (uint64_t x)

    Count the number of 1 bits.

    Defined at line 129 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • SmallVector collectIndirectableUses (GlobalVariable * G)

    Defined at line 129 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • void recordCondition (CallBase & CB, BasicBlock * From, BasicBlock * To, ConditionsTy & Conditions)

    If From has a conditional jump to To, add the condition to Conditions,

    if it is relevant to any argument at CB.

    Defined at line 129 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • bool callLooksLikeOperator (CallBase * CB, SmallVectorImpl<Value *> & OperatorArgs)

    Defined at line 129 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp

  • Expected uriFromAbsolutePath (StringRef AbsolutePath, StringRef Scheme)

    Defined at line 129 of file llvm/lib/Support/LSP/Protocol.cpp

  • const Target * GetTarget (const MachOObjectFile * MachOObj, const char ** McpuDefault, const Target ** ThumbTarget, Triple & ThumbTriple)

    Defined at line 129 of file llvm/tools/llvm-objdump/MachODump.cpp

  • int getInputs (opt::InputArgList & Args, bool DsymAsInput)

    Return a list of input files. This function has logic for dealing with the

    special case where we might have dSYM bundles as input. The function

    returns an error when the directory structure doesn't match that of a dSYM

    bundle.

    Defined at line 129 of file llvm/tools/dsymutil/dsymutil.cpp

  • void initializeLibCalls (TargetLibraryInfoImpl & TLI, const Triple & T, const llvm::StringTable & StandardNames, VectorLibrary VecLib)

    Initialize the set of available library functions based on the specified

    target triple. This should be carefully written so that a missing target

    triple gets a sane set of defaults.

    Defined at line 129 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • unsigned int getLEArOpcode (bool IsLP64)

    Defined at line 130 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • template <typename LTy, typename RTy>
    auto m_AnyAdd (const LTy & L, const RTy & R)

    Match any add operation (fp or integer).

    Defined at line 130 of file llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

  • LLVMBool LLVMGetBitcodeModule2 (LLVMMemoryBufferRef MemBuf, LLVMModuleRef * OutM)

    Defined at line 130 of file llvm/lib/Bitcode/Reader/BitReader.cpp

  • void initializeMachineCombinerPassOnce (PassRegistry & Registry)

    Defined at line 130 of file llvm/lib/CodeGen/MachineCombiner.cpp

  • bool isDebugTSection (SectionRef Section, CVTypeArray & Types)

    Defined at line 130 of file llvm/lib/DebugInfo/PDB/Native/InputFile.cpp

  • void executeFMulInst (GenericValue & Dest, GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 130 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • ConstantFPRange makeGreaterThan (APFloat V, Predicate Pred)

    Return (V, +inf] or [V, +inf]

    Defined at line 130 of file llvm/lib/IR/ConstantFPRange.cpp

  • bool upgradeX86MultiplyAddWords (Function * F, Intrinsic::ID IID, Function *& NewFn)

    Upgrade the declaration of multipy and add words intrinsics whose input

    arguments' types have changed to vectors of i32 to vectors of i16

    Defined at line 130 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool doesSuffixLookLikeMangledType (StringRef Suffix)

    Return true if the given Suffix looks like a mangled type. Note that this

    check is conservative, but allows all existing LLVM intrinsic suffixes to be

    considered as not looking like a mangling suffix.

    Defined at line 130 of file llvm/utils/TableGen/Basic/CodeGenIntrinsics.cpp

  • int AssembleInput (StringRef ProgName, const Target * TheTarget, SourceMgr & SrcMgr, MCContext & Ctx, MCStreamer & Str, MCAsmInfo & MAI, MCSubtargetInfo & STI, MCInstrInfo & MCII, MCTargetOptions & MCOptions, const opt::ArgList & InputArgs)

    Defined at line 130 of file llvm/tools/llvm-ml/llvm-ml.cpp

  • void printIndirectCFInstructions (FileAnalysis & Analysis, const SpecialCaseList * SpecialCaseList)

    Defined at line 130 of file llvm/tools/llvm-cfi-verify/llvm-cfi-verify.cpp

  • LLTCodeGen getLLTCodeGen (const PatternType & PT)

    ===- MatchTable Helpers ------------------------------------------------===//

    Defined at line 131 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • Value * simplifyCmpSelTrueCase (CmpPredicate Pred, Value * LHS, Value * RHS, Value * Cond, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Simplify comparison with true branch of select

    Defined at line 131 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • DILexicalBlockBase * cloneAndReplaceParentScope (DILexicalBlockBase * LBB, DIScope * NewParent)

    Defined at line 131 of file llvm/lib/IR/DebugInfoMetadata.cpp

  • SmallString argPrefix (StringRef ArgName, size_t Pad)

    Defined at line 131 of file llvm/lib/Support/CommandLine.cpp

  • int initRegisterMaskIds (const MachineFunction & MF)

    Defined at line 131 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • ElfType getOutputElfType (const Binary & Bin)

    Defined at line 131 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • void computePrevailingCopies (const ModuleSummaryIndex & Index, int & PrevailingCopy)

    Populate map of GUID to the prevailing copy for any multiply defined

    symbols. Currently assume first copy is prevailing, or any strong

    definition. Can be refined with Linker information in the future.

    Defined at line 131 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • Expected getApplePropertyName (const DWARFDie & PropDIE)

    Defined at line 131 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • template <typename T, endianness E>
    Error readFRE (ArrayRef Data, uint64_t & Offset, typename SFrameParser<E>::FrameRowEntry & FRE)

    Defined at line 131 of file llvm/lib/Object/SFrameParser.cpp

  • int getInterfaceFile (StringRef Filename, bool ResetBanner)

    Defined at line 131 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • SymbolRef getPreferredSymbol (const COFFObjectFile & COFF, SymbolRef Sym, uint32_t & SymbolOffset, bool IsRangeEnd)

    Defined at line 131 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • void doList (opt::InputArgList & Args)

    Defined at line 131 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • bool emitFeaturesAux (StringRef TargetName, const Init & Val, bool ParenIfBinOp, raw_ostream & OS)

    If ParenIfBinOp is true, print a surrounding () if Val uses

    &

    &

    or ||.

    Defined at line 131 of file llvm/utils/TableGen/Common/SubtargetFeatureInfo.cpp

  • int readInputFile (std::optional<FileFormat> & InputFormat, StringRef FilePath)

    Defined at line 131 of file llvm/tools/llvm-ifs/llvm-ifs.cpp

  • optional getQualifiedNameIndex (DWARFDie & Die, uint64_t Language, GsymCreator & Gsym)

    Get the GsymCreator string table offset for the qualified name for the

    DIE passed in. This function will avoid making copies of any strings in

    the GsymCreator when possible. We don't need to copy a string when the

    string comes from our .debug_str section or is an inlined string in the

    .debug_info. If we create a qualified name string in this function by

    combining multiple strings in the DWARF string table or info, we will make

    a copy of the string when we add it to the string table.

    Defined at line 131 of file llvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp

  • void calcPredicateUsingBooleans (ArrayRef Branches, ArrayRef Outgoing, SmallVectorImpl<BasicBlock *> & GuardBlocks, BBPredicates & GuardPredicates, SmallVectorImpl<WeakVH> & DeletionCandidates)

    Determine the branch condition to be used at each guard block from the

    original boolean values.

    Defined at line 131 of file llvm/lib/Transforms/Utils/ControlFlowUtils.cpp

  • Value * foldSelectICmpAnd (SelectInst & Sel, Value * CondVal, Value * TrueVal, Value * FalseVal, Value * V, const APInt & AndMask, bool CreateAnd, InstCombiner::BuilderTy & Builder)

    This folds:

    select (icmp eq (and X, C1)), TC, FC

    iff C1 is a power 2 and the difference between TC and FC is a power-of-2.

    To something like:

    (shr (and (X, C1)), (log2(C1) - log2(TC-FC))) + FC

    Or:

    (shl (and (X, C1)), (log2(TC-FC) - log2(C1))) + FC

    With some variations depending if FC is larger than TC, or the shift

    isn't needed, or the bit widths don't match.

    Defined at line 131 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • unsigned int getCPUType (const MachOObjectFile & O)

    Defined at line 132 of file llvm/lib/Object/MachOObjectFile.cpp

  • const Init * QualifyName (MultiClass * MC, const Init * Name)

    Defined at line 132 of file llvm/lib/TableGen/TGParser.cpp

  • int llvm_cxxfilt_main (int argc, char ** , const llvm::ToolContext & )

    Defined at line 160 of file llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp

  • bool Execute (ProcessInfo & PI, StringRef Program, ArrayRef Args, optional Env, ArrayRef Redirects, unsigned int MemoryLimit, std::string * ErrMsg, BitVector * AffinityMask, bool DetachProcess)

    ===----------------------------------------------------------------------===//

    === WARNING: Implementation here must contain only TRULY operating system

    === independent code.

    ===----------------------------------------------------------------------===//

    Defined at line 164 of file llvm/lib/Support/Unix/Program.inc

  • int llvm_calc ()

    calc.c

    Defined at line 148 of file llvm/tools/llvm-c-test/calc.c

  •  llvm_orc_registerEHFrameSectionAllocAction (const char * ArgData, size_t ArgSize)

    Defined at line 166 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp

  • Error dxcontainer2yaml (llvm::raw_ostream & Out, MemoryBufferRef Source)

    Defined at line 172 of file llvm/tools/obj2yaml/dxcontainer2yaml.cpp

  • bool runImpl (Module & M)

    Defined at line 153 of file llvm/lib/CodeGen/JMCInstrumenter.cpp

  • Error dumpDebugRanges (llvm::DWARFContext & DCtx, llvm::DWARFYAML::Data & Y)

    Defined at line 139 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • bool InsertIntrinsicCalls (ArrayRef CBRs, DominatorTree & DT)

    Defined at line 140 of file llvm/lib/CodeGen/CallBrPrepare.cpp

  • void LLVMDisasmDispose (LLVMDisasmContextRef DC)

    Dispose of a disassembler context.

    Defined at line 134 of file llvm/lib/MC/MCDisassembler/Disassembler.cpp

  • int lmatcher (struct re_guts * , const char * , size_t , llvm_regmatch_t[] , int )

    - matcher - the actual matching engine

    Defined at line 133 of file llvm/lib/Support/regengine.inc

  • int smatcher (struct re_guts * , const char * , size_t , llvm_regmatch_t[] , int )

    - matcher - the actual matching engine

    Defined at line 133 of file llvm/lib/Support/regengine.inc

  • LLVMBool LLVMCreateJITCompilerForModule (LLVMExecutionEngineRef * OutJIT, LLVMModuleRef M, unsigned int OptLevel, char ** OutError)

    Defined at line 133 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void LLVMPassBuilderOptionsSetAAPipeline (LLVMPassBuilderOptionsRef Options, const char * AAPipeline)

    Specify a custom alias analysis pipeline for the PassBuilder to be used

    instead of the default one. The string argument is not copied; the caller

    is responsible for ensuring it outlives the PassBuilderOptions instance.

    Defined at line 133 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • void LLVMInitializeMCJITCompilerOptions (struct LLVMMCJITCompilerOptions * Options, size_t SizeOfOptions)

    Defined at line 150 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void LLVMPassBuilderOptionsSetLoopInterleaving (LLVMPassBuilderOptionsRef Options, LLVMBool LoopInterleaving)

    Defined at line 138 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • int llvm_regexec (const llvm_regex_t * , const char * , size_t , llvm_regmatch_t[] , int )

    Defined at line 140 of file llvm/lib/Support/regexec.c

  • void LLVMPassBuilderOptionsSetLoopVectorization (LLVMPassBuilderOptionsRef Options, LLVMBool LoopVectorization)

    Defined at line 143 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • void LLVMPassBuilderOptionsSetSLPVectorization (LLVMPassBuilderOptionsRef Options, LLVMBool SLPVectorization)

    Defined at line 148 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • void LLVMPassBuilderOptionsSetLoopUnrolling (LLVMPassBuilderOptionsRef Options, LLVMBool LoopUnrolling)

    Defined at line 153 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • basic_string fetchDebugInfo (ArrayRef BuildID)

    Find a debug file in local build ID directories and via debuginfod.

    Defined at line 154 of file llvm/tools/llvm-debuginfod-find/llvm-debuginfod-find.cpp

  • void LLVMPassBuilderOptionsSetForgetAllSCEVInLoopUnroll (LLVMPassBuilderOptionsRef Options, LLVMBool ForgetAllSCEVInLoopUnroll)

    Defined at line 158 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • void LLVMPassBuilderOptionsSetLicmMssaOptCap (LLVMPassBuilderOptionsRef Options, unsigned int LicmMssaOptCap)

    Defined at line 163 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • LLVMBool LLVMCreateMCJITCompilerForModule (LLVMExecutionEngineRef * OutJIT, LLVMModuleRef M, struct LLVMMCJITCompilerOptions * Options, size_t SizeOfOptions, char ** OutError)

    Create an MCJIT execution engine for a module, with the given options. It is

    the responsibility of the caller to ensure that all fields in Options up to

    the given SizeOfOptions are initialized. It is correct to pass a smaller

    value of SizeOfOptions that omits some fields. The canonical way of using

    this is:

    LLVMMCJITCompilerOptions options;

    LLVMInitializeMCJITCompilerOptions(

    &options

    , sizeof(options));

    ... fill in those options you care about

    LLVMCreateMCJITCompilerForModule(

    &jit

    , mod,

    &options

    , sizeof(options),

    &error

    );

    Note that this is also correct, though possibly suboptimal:

    LLVMCreateMCJITCompilerForModule(

    &jit

    , mod, 0, 0,

    &error

    );

    Defined at line 160 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMBinaryRef LLVMMachOUniversalBinaryCopyObjectForArch (LLVMBinaryRef BR, const char * Arch, size_t ArchLen, char ** ErrorMessage)

    For a Mach-O universal binary file, retrieves the object file corresponding

    to the given architecture if it is present as a slice.

    If NULL is returned, the

    parameter is populated with the

    error's description. It is then the caller's responsibility to free this

    message by calling

    It is the responsiblity of the caller to free the returned object file by

    calling

    Defined at line 140 of file llvm/lib/Object/Object.cpp

  • void LLVMPassBuilderOptionsSetLicmMssaNoAccForPromotionCap (LLVMPassBuilderOptionsRef Options, unsigned int LicmMssaNoAccForPromotionCap)

    Defined at line 168 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • LLVMSectionIteratorRef LLVMObjectFileCopySectionIterator (LLVMBinaryRef BR)

    Retrieve a copy of the section iterator for this object file.

    If there are no sections, the result is NULL.

    The returned iterator is merely a shallow copy. Nevertheless, it is

    the responsibility of the caller to free it with

    Defined at line 154 of file llvm/lib/Object/Object.cpp

  • void LLVMTargetMachineOptionsSetFeatures (LLVMTargetMachineOptionsRef Options, const char * Features)

    Set the list of features for the target machine.

    Parameters

    Features a comma-separated list of features.

    Defined at line 132 of file llvm/lib/Target/TargetMachineC.cpp

  • void LLVMRemarkEntryDispose (LLVMRemarkEntryRef Remark)

    Free the resources used by the remark entry.

    Defined at line 104 of file llvm/lib/Remarks/Remark.cpp

  • LLVMRemarkType LLVMRemarkEntryGetType (LLVMRemarkEntryRef Remark)

    The type of the remark. For example, it can allow users to only keep the

    missed optimizations from the compiler.

    Defined at line 108 of file llvm/lib/Remarks/Remark.cpp

  • LLVMRemarkStringRef LLVMRemarkEntryGetPassName (LLVMRemarkEntryRef Remark)

    Get the name of the pass that emitted this remark.

    Defined at line 113 of file llvm/lib/Remarks/Remark.cpp

  • LLVMRemarkStringRef LLVMRemarkEntryGetRemarkName (LLVMRemarkEntryRef Remark)

    Get an identifier of the remark.

    Defined at line 118 of file llvm/lib/Remarks/Remark.cpp

  • LLVMRemarkStringRef LLVMRemarkEntryGetFunctionName (LLVMRemarkEntryRef Remark)

    Get the name of the function being processed when the remark was emitted.

    Defined at line 123 of file llvm/lib/Remarks/Remark.cpp

  • LLVMRemarkDebugLocRef LLVMRemarkEntryGetDebugLoc (LLVMRemarkEntryRef Remark)

    Returns the debug location that is attached to this remark.

    If there is no debug location, the return value will be `NULL`.

    Defined at line 128 of file llvm/lib/Remarks/Remark.cpp

  • LLVMRemarkParserRef LLVMRemarkParserCreateYAML (const void * Buf, uint64_t Size)

    Create wrappers for C Binding types (see CBindingWrapping.h).

    Defined at line 109 of file llvm/lib/Remarks/RemarkParser.cpp

  • LLVMRemarkParserRef LLVMRemarkParserCreateBitstream (const void * Buf, uint64_t Size)

    Creates a remark parser that can be used to parse the buffer located in

    of size

    bytes.

    cannot be `NULL`.

    This function should be paired with LLVMRemarkParserDispose() to avoid

    leaking resources.

    Defined at line 115 of file llvm/lib/Remarks/RemarkParser.cpp

  • unsigned long long LLVMABISizeOfType (LLVMTargetDataRef TD, LLVMTypeRef Ty)

    Computes the ABI size of a type in bytes for a target.

    See the method llvm::DataLayout::getTypeAllocSize.

    Defined at line 104 of file llvm/lib/Target/Target.cpp

  • unsigned int LLVMABIAlignmentOfType (LLVMTargetDataRef TD, LLVMTypeRef Ty)

    Computes the ABI alignment of a type in bytes for a target.

    See the method llvm::DataLayout::getTypeABISize.

    Defined at line 108 of file llvm/lib/Target/Target.cpp

  • unsigned int LLVMCallFrameAlignmentOfType (LLVMTargetDataRef TD, LLVMTypeRef Ty)

    Computes the call frame alignment of a type in bytes for a target.

    See the method llvm::DataLayout::getTypeABISize.

    Defined at line 112 of file llvm/lib/Target/Target.cpp

  • unsigned int LLVMPreferredAlignmentOfType (LLVMTargetDataRef TD, LLVMTypeRef Ty)

    Computes the preferred alignment of a type in bytes for a target.

    See the method llvm::DataLayout::getTypeABISize.

    Defined at line 116 of file llvm/lib/Target/Target.cpp

  • unsigned int LLVMPreferredAlignmentOfGlobal (LLVMTargetDataRef TD, LLVMValueRef GlobalVar)

    Computes the preferred alignment of a global variable in bytes for a target.

    See the method llvm::DataLayout::getPreferredAlignment.

    Defined at line 120 of file llvm/lib/Target/Target.cpp

  • unsigned int LLVMElementAtOffset (LLVMTargetDataRef TD, LLVMTypeRef StructTy, unsigned long long Offset)

    Computes the structure element that contains the byte offset for a target.

    See the method llvm::StructLayout::getElementContainingOffset.

    Defined at line 127 of file llvm/lib/Target/Target.cpp

  • LLVMRemarkEntryRef LLVMRemarkParserGetNext (LLVMRemarkParserRef Parser)

    Returns the next remark in the file.

    The value pointed to by the return value needs to be disposed using a call to

    LLVMRemarkEntryDispose().

    All the entries in the returned value that are of LLVMRemarkStringRef type

    will become invalidated once a call to LLVMRemarkParserDispose is made.

    If the parser reaches the end of the buffer, the return value will be `NULL`.

    In the case of an error, the return value will be `NULL`, and:

    1) LLVMRemarkParserHasError() will return `1`.

    2) LLVMRemarkParserGetErrorMessage() will return a descriptive error

    message.

    An error may occur if:

    1) An argument is invalid.

    2) There is a parsing error. This can occur on things like malformed YAML.

    3) There is a Remark semantic error. This can occur on well-formed files with

    missing or extra fields.

    Here is a quick example of the usage:

    ```

    LLVMRemarkParserRef Parser = LLVMRemarkParserCreateYAML(Buf, Size);

    LLVMRemarkEntryRef Remark = NULL;

    while ((Remark = LLVMRemarkParserGetNext(Parser))) {

    // use Remark

    LLVMRemarkEntryDispose(Remark); // Release memory.

    }

    bool HasError = LLVMRemarkParserHasError(Parser);

    LLVMRemarkParserDispose(Parser);

    ```

    Defined at line 121 of file llvm/lib/Remarks/RemarkParser.cpp

  • LLVMContextRef LLVMContextCreate ()

    Create a new context.

    Every call to this function should be paired with a call to

    LLVMContextDispose() or the context will leak memory.

    Defined at line 104 of file llvm/lib/IR/Core.cpp

  • LLVMContextRef LLVMGetGlobalContext ()

    Obtain the global context instance.

    Defined at line 108 of file llvm/lib/IR/Core.cpp

  • void LLVMContextSetDiagnosticHandler (LLVMContextRef C, LLVMDiagnosticHandler Handler, void * DiagnosticContext)

    Set the diagnostic handler for this context.

    Defined at line 110 of file llvm/lib/IR/Core.cpp

  • LLVMDiagnosticHandler LLVMContextGetDiagnosticHandler (LLVMContextRef C)

    Get the diagnostic handler of this context.

    Defined at line 119 of file llvm/lib/IR/Core.cpp

  • void * LLVMContextGetDiagnosticContext (LLVMContextRef C)

    Get the diagnostic context of this context.

    Defined at line 124 of file llvm/lib/IR/Core.cpp

  • void LLVMContextSetYieldCallback (LLVMContextRef C, LLVMYieldCallback Callback, void * OpaqueHandle)

    Set the yield callback function for this context.

    Defined at line 128 of file llvm/lib/IR/Core.cpp

  • bool isYmmOrZmmReg (MCRegister Reg)

    VZEROUPPER cleans state that is related to Y/ZMM0-15 only.

    Thus, there is no need to check for Y/ZMM16 and above.

    Defined at line 132 of file llvm/lib/Target/X86/X86VZeroUpper.cpp

  • void initializeSpeculativeExecutionLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 132 of file llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp

  • void initializeTestCustomAAWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 132 of file llvm/unittests/Analysis/AliasAnalysisTest.cpp

  • Instruction * buildTargetLegalStore (Value * Val, Value * Ptr, InsertPosition IP, Module * M)

    Stores a value to memory, considering the target triple's restrictions.

    Defined at line 132 of file llvm/lib/FuzzMutate/RandomIRBuilder.cpp

  • basic_string generateGetTypeIR (unsigned int Size)

    Defined at line 132 of file llvm/benchmarks/SandboxIRBench.cpp

  • int64_t readLEB128 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 132 of file llvm/lib/Object/WasmObjectFile.cpp

  • bool isXMMLoadOpcode (unsigned int Opcode)

    Defined at line 132 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • unique_ptr getOrCreateLogFile ()

    Defined at line 132 of file llvm/lib/Transforms/Coroutines/CoroElide.cpp

  • optional absoluteSymbolDiff (const MCSymbol * Hi, const MCSymbol * Lo)

    As a compile-time optimization, avoid allocating and evaluating an MCExpr

    tree for (Hi - Lo) when Hi and Lo are offsets into the same fragment's fixed

    part.

    Defined at line 132 of file llvm/lib/MC/MCObjectStreamer.cpp

  • void writeCodeRecord (const PerfJITCodeLoadRecord & CodeRecord)

    Defined at line 132 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • void printFunctionDiff (const FunctionDiff & FD, llvm::raw_ostream & OS)

    Defined at line 132 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • GlobalVariable * createRelLookupTable (LookupTableInfo & Info, Function & Func, GlobalVariable & LookupTable)

    Defined at line 132 of file llvm/lib/Transforms/Utils/RelLookupTableConverter.cpp

  • BogusTargetMachine * createTargetMachine ()

    Defined at line 133 of file llvm/unittests/CodeGen/MFCommon.inc

  • unsigned long long LLVMOffsetOfElement (LLVMTargetDataRef TD, LLVMTypeRef StructTy, unsigned int Element)

    Computes the byte offset of the indexed struct element for a target.

    See the method llvm::StructLayout::getElementContainingOffset.

    Defined at line 133 of file llvm/lib/Target/Target.cpp

  • void initializeMachineRegionInfoPassPassOnce (PassRegistry & Registry)

    Defined at line 133 of file llvm/lib/CodeGen/MachineRegionInfo.cpp

  • Error processCommandLineLibraries ()

    Defined at line 133 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • bool ignoreOp (const Instruction * I, unsigned int OpIdx)

    This function takes an instruction,

    and an operand index,

    It returns true if the operand should be ignored in the hash computation.

    If

    is out of range based on the other instruction context, it cannot

    be ignored.

    Defined at line 133 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • bool isArithmeticOp (unsigned int Opc)

    Defined at line 134 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp

  • const MCExpr * makeStartPlusIntExpr (MCContext & Ctx, const MCSymbol & Start, int IntVal)

    This helper routine returns an expression of Start + IntVal .

    Defined at line 134 of file llvm/lib/MC/MCDwarf.cpp

  • unsigned int getMOVriOpcode (bool Use64BitReg, int64_t Imm)

    Defined at line 134 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • LLVMBool LLVMInitializeNativeTarget ()

    LLVMInitializeNativeTarget - The main program should call this function to

    initialize the native target corresponding to the host. This is useful

    for JIT applications to ensure that the target gets linked in correctly.

    Defined at line 134 of file llvm/include/llvm-c/Target.h

  • LLVMBool LLVMInitializeNativeTarget ()

    LLVMInitializeNativeTarget - The main program should call this function to

    initialize the native target corresponding to the host. This is useful

    for JIT applications to ensure that the target gets linked in correctly.

    Defined at line 134 of file llvm/include/llvm-c/Target.h

  • StringRef getSpaceDelimitedWord (StringRef & Source)

    Defined at line 134 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • void benchmark (llvm::TimerGroup & Group, StringRef Name, StringRef Description, StringRef JSONText)

    Defined at line 134 of file llvm/utils/yaml-bench/YAMLBench.cpp

  • SpecialIntrinsicKind consumeSpecialIntrinsicKind (std::string_view & MangledName)

    Defined at line 134 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • bool mergeConstants (Module & M)

    Defined at line 134 of file llvm/lib/Transforms/IPO/ConstantMerge.cpp

  • uint64_t LLVMRemarkEntryGetHotness (LLVMRemarkEntryRef Remark)

    Return the hotness of the remark.

    A hotness of `0` means this value is not set.

    Defined at line 135 of file llvm/lib/Remarks/Remark.cpp

  • LLVMBool LLVMContextShouldDiscardValueNames (LLVMContextRef C)

    Retrieve whether the given context is set to discard all value names.

    Defined at line 135 of file llvm/lib/IR/Core.cpp

  • void initializeShadowStackGCLoweringPassOnce (PassRegistry & Registry)

    Defined at line 135 of file llvm/lib/CodeGen/ShadowStackGCLowering.cpp

  • bool callHasFP128Argument (const CallInst * CI)

    Defined at line 135 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void initializeBasicBlockSectionsPassOnce (PassRegistry & Registry)

    Defined at line 135 of file llvm/lib/CodeGen/BasicBlockSections.cpp

  • void printDepMatrix (CharMatrix & DepMatrix)

    Defined at line 135 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • basic_string formatPointerMode (PointerMode Mode)

    Defined at line 135 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • bool ExecGraphViewer (StringRef ExecPath, std::vector<StringRef> & args, StringRef Filename, bool wait, std::string & ErrMsg)

    Execute the graph viewer. Return true if there were errors.

    Defined at line 135 of file llvm/lib/Support/GraphWriter.cpp

  • void orderValue (const Value * V, OrderMap & OM)

    Defined at line 135 of file llvm/lib/IR/AsmWriter.cpp

  • StringRef maxPlainSubstring (StringRef S)

    Defined at line 135 of file llvm/lib/Support/GlobPattern.cpp

  • template <class StopSetT>
    bool isReachableImpl (SmallVectorImpl<BasicBlock *> & Worklist, const StopSetT & StopSet, const SmallPtrSetImpl<BasicBlock *> * ExclusionSet, const DominatorTree * DT, const LoopInfo * LI)

    Defined at line 135 of file llvm/lib/Analysis/CFG.cpp

  • unsigned int getCPUSubType (const MachOObjectFile & O)

    Defined at line 136 of file llvm/lib/Object/MachOObjectFile.cpp

  • StringRef checkStr (StringRef Str, unsigned int ExpectedLen)

    Defined at line 136 of file llvm/unittests/Remarks/BitstreamRemarksParsingTest.cpp

  • bool setOnlyWritesArgMemOrErrnoMem (Function & F)

    Defined at line 136 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • TailCallKind getOverridingTailCallKind (const Function & F)

    ObjCARC has knowledge about whether an obj-c runtime function needs to be

    always tail-called or never tail-called.

    Defined at line 136 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • const unsigned char * getPrefixForHref (const unsigned char * HRef)

    Return the prefix that corresponds to the HRef. If HRef is not a recognized

    URI, then just return the HRef itself to use as the prefix.

    Defined at line 136 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • bool hasCountTypeMD (const Instruction & I)

    Defined at line 136 of file llvm/lib/IR/ProfDataUtils.cpp

  • bool isKeyValuePair (MDTuple * MD, const char * Key, const char * Val)

    Check if an MDTuple represents a (Key, Val) pair.

    Defined at line 136 of file llvm/lib/IR/ProfileSummary.cpp

  • ilist_iterator_w_bits getEndIterator (BasicBlock & BB)

    Defined at line 136 of file llvm/lib/FuzzMutate/IRMutator.cpp

  • void appendToUsedList (Module & M, StringRef Name, ArrayRef Values)

    Defined at line 136 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • pair computePerfectHashParameters (ArrayRef Hashes)

    Return the table size, maximum number of collisions for the set of hashes

    Defined at line 136 of file llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp

  • void TimeOutHandler (int Sig)

    Defined at line 137 of file llvm/lib/Support/Unix/Program.inc

  • const Init * QualifiedNameOfImplicitName (const Record & Rec)

    Return the qualified version of the implicit 'NAME' template argument.

    Defined at line 137 of file llvm/lib/TableGen/TGParser.cpp

  • uint64_t computeStackId (const memprof::Frame & Frame)

    Defined at line 137 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • void appendDigit (std::string & Str, unsigned int D)

    Defined at line 137 of file llvm/lib/Support/ScaledNumber.cpp

  • void LLVMTargetMachineOptionsSetABI (LLVMTargetMachineOptionsRef Options, const char * ABI)

    Defined at line 137 of file llvm/lib/Target/TargetMachineC.cpp

  • FormattedNumber format_ptr (void * PC)

    Format a pointer value as hexadecimal. Zero pad it out so its always the

    same width.

    Defined at line 137 of file llvm/lib/Support/Signals.cpp

  • bool IsLegalItaniumChar (char C)

    This returns true if 'C' is a character that can show up in an

    Itanium-mangled string.

    Defined at line 137 of file llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp

  • LLVMOrcObjectLayerRef objectLinkingLayerCreator (void * Opaque, LLVMOrcExecutionSessionRef ES, const char * Triple)

    Defined at line 137 of file llvm/examples/OrcV2Examples/OrcV2CBindingsMCJITLikeMemoryManager/OrcV2CBindingsMCJITLikeMemoryManager.c

  • bool checkFnHasLiveInYmmOrZmm (MachineRegisterInfo & MRI)

    Defined at line 137 of file llvm/lib/Target/X86/X86VZeroUpper.cpp

  • CallBase * getInlinableCS (Instruction & I)

    Defined at line 137 of file llvm/lib/Analysis/MLInlineAdvisor.cpp

  • unsigned int encodeCounter (ArrayRef Expressions, Counter C)

    Encode the counter.

    The encoding uses the following format:

    Low 2 bits - Tag:

    Counter::Zero(0) - A Counter with kind Counter::Zero

    Counter::CounterValueReference(1) - A counter with kind

    Counter::CounterValueReference

    Counter::Expression(2) + CounterExpression::Subtract(0) -

    A counter with kind Counter::Expression and an expression

    with kind CounterExpression::Subtract

    Counter::Expression(2) + CounterExpression::Add(1) -

    A counter with kind Counter::Expression and an expression

    with kind CounterExpression::Add

    Remaining bits - Counter/Expression ID.

    Defined at line 137 of file llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp

  • uint32_t handleOneMethod (ArrayRef Data, uint32_t Offset, SmallVectorImpl<TiReference> & Refs)

    Defined at line 137 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • bool CouldBecomeSafePoint (Instruction * I)

    CouldBecomeSafePoint - Predicate to conservatively determine whether the

    instruction could introduce a safe point.

    Defined at line 137 of file llvm/lib/CodeGen/GCRootLowering.cpp

  • template <typename T>
    bool processHeaderPhiOperands (BasicBlock * Header, BasicBlock * Latch, BasicBlockSet & AftBlocks, T Visit)

    Looks at the phi nodes in Header for values coming from Latch. For these

    instructions and all their operands calls Visit on them, keeping going for

    all the operands in AftBlocks. Returns false if Visit returns false,

    otherwise returns true. This is used to process the instructions in the

    Aft blocks that need to be moved before the subloop. It is used in two

    places. One to check that the required set of instructions can be moved

    before the loop. Then to collect the instructions to actually move in

    moveHeaderPhiOperandsToForeBlocks.

    Defined at line 137 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • bool eliminateCondBranches_v1 (Function & F)

    Eliminate branches with constant conditionals. This is the first version,

    which *does not* preserve the dominator tree.

    Defined at line 137 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • void computeConstraintToUse (const TargetLowering * TLI, TargetLowering::AsmOperandInfo & OpInfo)

    Defined at line 137 of file llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp

  • void printHelpMessage ()

    Defined at line 138 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • int createMachineFunction (LLVMContext & Ctx, Module & M, const Twine & Name)

    Defined at line 138 of file llvm/unittests/CodeGen/MFCommon.inc

  • Expected initStream (MemoryBufferRef Buffer)

    Defined at line 138 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Expected getMainModulePath (StringRef FunctionName, ModuleSummaryIndex & Index)

    Lookup the a function in the ModuleSummaryIndex and return the path of the

    module that defines it. Paths in the ModuleSummaryIndex are relative to the

    build directory of the covered modules.

    Defined at line 138 of file llvm/examples/OrcV2Examples/LLJITWithThinLTOSummaries/LLJITWithThinLTOSummaries.cpp

  • Error unbundleImages ()

    Defined at line 138 of file llvm/tools/llvm-offload-binary/llvm-offload-binary.cpp

  • void LLVMContextSetDiscardValueNames (LLVMContextRef C, LLVMBool Discard)

    Set whether the given context discards all value names.

    If true, only the names of GlobalValue objects will be available in the IR.

    This can be used to save memory and runtime, especially in release mode.

    Defined at line 139 of file llvm/lib/IR/Core.cpp

  • void initializeRegToMemWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 139 of file llvm/lib/Transforms/Scalar/Reg2Mem.cpp

  • Value * simplifyCmpSelFalseCase (CmpPredicate Pred, Value * LHS, Value * RHS, Value * Cond, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Simplify comparison with false branch of select

    Defined at line 139 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • CallInst::BundleOpInfo * getBundleFromUse (const Use * U)

    Defined at line 139 of file llvm/lib/Analysis/AssumeBundleQueries.cpp

  • basic_string formatChecksumKind (FileChecksumKind Kind)

    Defined at line 139 of file llvm/lib/DebugInfo/PDB/Native/InputFile.cpp

  • void dumpSpills (StringRef Title, const coro::SpillInfo & Spills)

    Defined at line 139 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void SetMemoryLimits (unsigned int size)

    Defined at line 139 of file llvm/lib/Support/Unix/Program.inc

  • size_t layout (BlobAllocator & File, MinidumpYAML::Memory64ListStream & S)

    Defined at line 139 of file llvm/lib/ObjectYAML/MinidumpEmitter.cpp

  • bool getUnderlyingObjectsForInstr (const MachineInstr * MI, const MachineFrameInfo & MFI, UnderlyingObjectsVector & Objects, const DataLayout & DL)

    If this machine instr has memory reference information and it can be

    tracked to a normal reference to a known object, return the Value

    for that object. This function returns false the memory location is

    unknown or may alias anything.

    Defined at line 139 of file llvm/lib/CodeGen/ScheduleDAGInstrs.cpp

  • MachineBasicBlock & splitBlock (MachineBasicBlock & MBB, MachineInstr & SplitI, const X86InstrInfo & TII)

    Defined at line 139 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp

  • IntegerType * getSizeTType (LLVMContext & Ctx, const DataLayout & DL)

    TODO: There is really no guarantee that sizeof(size_t) is equal to the index

    size of the default address space. This matches TargetLibraryInfo and should

    be kept in sync.

    Defined at line 140 of file llvm/lib/IR/RuntimeLibcalls.cpp

  • uint32_t getPlainRelocationAddress (const MachO::any_relocation_info & RE)

    Defined at line 140 of file llvm/lib/Object/MachOObjectFile.cpp

  • void initializePseudoProbeInserterPassOnce (PassRegistry & Registry)

    Defined at line 140 of file llvm/lib/CodeGen/PseudoProbeInserter.cpp

  • void initializeLoopDataPrefetchLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 140 of file llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp

  • bool isSymbolLinkerVisible (const MCSymbol & Symbol)

    Defined at line 140 of file llvm/lib/MC/MachObjectWriter.cpp

  • void validateArchitectureName (StringRef ArchitectureName)

    Defined at line 140 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • pair buildTargetLegalLoad (Type * AccessTy, Value * Ptr, InsertPosition IP, Module * M, const Twine & LoadName)

    Loads a value from memory, considering the target triple's restrictions.

    Defined at line 140 of file llvm/lib/FuzzMutate/RandomIRBuilder.cpp

  • const SDep * CriticalPathStep (const SUnit * SU)

    CriticalPathStep - Return the next SUnit after SU on the bottom-up

    critical path.

    Defined at line 140 of file llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp

  • void CloneNodeWithValues (SDNode * N, SelectionDAG * DAG, ArrayRef<EVT> VTs, SDValue ExtraOper)

    Helper for AddGlue to clone node operands.

    Defined at line 140 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp

  • Error dumpDebugSection (StringRef SecName, DWARFContext & DCtx, DWARFYAML::Data & DWARF)

    Defined at line 140 of file llvm/tools/obj2yaml/macho2yaml.cpp

  • void fixupIndexV5 (DWARFContext & C, DWARFUnitIndex & Index)

    Defined at line 140 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • BCEAtom visitICmpLoadOperand (Value *const Val, BaseIdentifier & BaseId)

    If this value is a load from a constant offset w.r.t. a base address, and

    there are no other users of the load or address, returns the base address and

    the offset.

    Defined at line 140 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • bool addDiscriminators (Function & F)

    Assign DWARF discriminators.

    To assign discriminators, we examine the boundaries of every

    basic block and its successors. Suppose there is a basic block B1

    with successor B2. The last instruction I1 in B1 and the first

    instruction I2 in B2 are located at the same file and line number.

    This situation is illustrated in the following code snippet:

    if (i

    <

    10) x = i;

    entry:

    br i1 %cmp, label %if.then, label %if.end, !dbg !10

    if.then:

    %1 = load i32* %i.addr, align 4, !dbg !10

    store i32 %1, i32* %x, align 4, !dbg !10

    br label %if.end, !dbg !10

    if.end:

    ret void, !dbg !12

    Notice how the branch instruction in block 'entry' and all the

    instructions in block 'if.then' have the exact same debug location

    information (!dbg !10).

    To distinguish instructions in block 'entry' from instructions in

    block 'if.then', we generate a new lexical block for all the

    instruction in block 'if.then' that share the same file and line

    location with the last instruction of block 'entry'.

    This new lexical block will have the same location information as

    the previous one, but with a new DWARF discriminator value.

    One of the main uses of this discriminator value is in runtime

    sample profilers. It allows the profiler to distinguish instructions

    at location !dbg !10 that execute on different basic blocks. This is

    important because while the predicate 'if (x

    <

    10)' may have been

    executed millions of times, the assignment 'x = i' may have only

    executed a handful of times (meaning that the entry->if.then edge is

    seldom taken).

    If we did not have discriminator information, the profiler would

    assign the same weight to both blocks 'entry' and 'if.then', which

    in turn will make it conclude that the entry->if.then edge is very

    hot.

    To decide where to create new discriminator values, this function

    traverses the CFG and examines instruction at basic block boundaries.

    If the last instruction I1 of a block B1 is at the same file and line

    location as instruction I2 of successor B2, then it creates a new

    lexical block for I2 and all the instruction in B2 that share the same

    file and line location as I2. This new lexical block will have a

    different discriminator number than I1.

    Defined at line 140 of file llvm/lib/Transforms/Utils/AddDiscriminators.cpp

  • uint32_t LLVMRemarkEntryGetNumArgs (LLVMRemarkEntryRef Remark)

    The number of arguments the remark holds.

    Defined at line 141 of file llvm/lib/Remarks/Remark.cpp

  • bool isGrouping (const Option * O)

    Option predicates...

    Defined at line 141 of file llvm/lib/Support/CommandLine.cpp

  • const Init * QualifiedNameOfImplicitName (MultiClass * MC)

    Defined at line 141 of file llvm/lib/TableGen/TGParser.cpp

  • template <typename HasherT, llvm::endianness Endianness>
    void addHash (llvm::HashBuilder<HasherT, Endianness> & HBuilder, const StructWithoutCopyOrMove & Value)

    Defined at line 141 of file llvm/unittests/Support/HashBuilderTest.cpp

  • AllocationType getAllocType (const AllocationInfo * AllocInfo)

    Defined at line 141 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • uint64_t getUnrollAndJammedLoopSize (unsigned int LoopSize, TargetTransformInfo::UnrollingPreferences & UP)

    Returns loop size estimation for unrolled loop.

    Defined at line 141 of file llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp

  • template <IR IRTy>
    void GetType (benchmark::State & State)

    Defined at line 141 of file llvm/benchmarks/SandboxIRBench.cpp

  • unsigned int findDefIdx (const MachineInstr * MI, unsigned int DefOperIdx)

    Find the def index of this operand. This index maps to the machine model and

    is independent of use operands. Def operands may be reordered with uses or

    merged with uses without affecting the def index (e.g. before/after

    regalloc). However, an instruction's def operands must never be reordered

    with respect to each other.

    Defined at line 141 of file llvm/lib/CodeGen/TargetSchedule.cpp

  • void executeFDivInst (GenericValue & Dest, GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 141 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • void verifyTables ()

    Defined at line 141 of file llvm/lib/Target/X86/X86InstrFMA3Info.cpp

  • ErrorOr getMemBufferCopyImpl (StringRef InputData, const Twine & BufferName)

    Defined at line 141 of file llvm/lib/Support/MemoryBuffer.cpp

  • void remarkCall (OptimizationRemarkEmitter & ORE, const Function & Caller, const CallBase & Call, StringRef CallKind, StringRef RemarkKind)

    Defined at line 141 of file llvm/lib/Analysis/KernelInfo.cpp

  • basic_string formatPublicSymFlags (uint32_t IndentLevel, PublicSymFlags Flags)

    Defined at line 141 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • void error (Error E, StringRef FileName, StringRef ArchitectureName)

    This version of error() prints the file name and which architecture slice it // is from, for example: "foo.o (for architecture i386)" after the ToolName

    before the error message. It sets HadError but returns allowing the code to

    move on to other architecture slices.

    Defined at line 141 of file llvm/tools/llvm-size/llvm-size.cpp

  • Expected getPdbPathFromExe (StringRef ExePath)

    Defined at line 141 of file llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp

  • template <typename T>
    T * getPlanEntry (T * Start)

    Get the top-most entry block of

    This is the entry block of the

    containing VPlan. This function is templated to support both const and non-const blocks

    Defined at line 141 of file llvm/lib/Transforms/Vectorize/VPlan.cpp

  • void emitComments (LLVMDisasmContext * DC, formatted_raw_ostream & FormattedOS)

    Emits the comments that are stored in

    comment stream.

    Each comment in the comment stream must end with a newline.

    Defined at line 141 of file llvm/lib/MC/MCDisassembler/Disassembler.cpp

  • Expected connectTCPSocketImpl (basic_string Host, basic_string PortStr)

    Defined at line 141 of file llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/RemoteJITUtils.cpp

  • void EmitInlineAsmStr (const char * AsmStr, const MachineInstr * MI, MachineModuleInfo * MMI, const MCAsmInfo * MAI, AsmPrinter * AP, uint64_t LocCookie, raw_ostream & OS)

    Defined at line 141 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp

  • Value * generateUnsignedDivisionCode (Value * Dividend, Value * Divisor, IRBuilder<> & Builder)

    Generates code to divide two unsigned scalar 32-bit or 64-bit integers.

    Returns the quotient, rounded towards 0. Builder's insert point should

    point where the caller wants code generated, e.g. at the udiv instruction.

    Defined at line 141 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp

  • void initializeBranchRelaxationLegacyPassOnce (PassRegistry & Registry)

    Defined at line 142 of file llvm/lib/CodeGen/BranchRelaxation.cpp

  • uint8_t readVaruint1 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 142 of file llvm/lib/Object/WasmObjectFile.cpp

  • void appendNumber (std::string & Str, uint64_t N)

    Defined at line 142 of file llvm/lib/Support/ScaledNumber.cpp

  • bool isYMMLoadOpcode (unsigned int Opcode)

    Defined at line 142 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • pair getLocalScopeLocationOr (DIScope * S, pair Default)

    Returns the location of DILocalScope, if present, or a default value.

    Defined at line 142 of file llvm/lib/IR/DebugInfoMetadata.cpp

  • ConstantFPRange extendZeroIfEqual (const ConstantFPRange & CR, Predicate Pred)

    Make sure that +0/-0 are both included in the range.

    Defined at line 142 of file llvm/lib/IR/ConstantFPRange.cpp

  • void LLVMTargetMachineOptionsSetCodeGenOptLevel (LLVMTargetMachineOptionsRef Options,  Level)

    Defined at line 142 of file llvm/lib/Target/TargetMachineC.cpp

  • vector computeBlockRuns (uint32_t BlockSize, const msf::MSFStreamLayout & Layout)

    Defined at line 142 of file llvm/lib/DebugInfo/PDB/Native/LinePrinter.cpp

  • Value * foldMulShl1 (BinaryOperator & Mul, bool CommuteOperands, InstCombiner::BuilderTy & Builder)

    Reduce integer multiplication patterns that contain a (+/-1

    <

    <

    Z) factor.

    Callers are expected to call this twice to handle commuted patterns.

    Defined at line 142 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • Expected<CommandOptions> parseOptions (int Argc, char ** Argv)

    Defined at line 142 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • void initializeDCELegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 143 of file llvm/lib/Transforms/Scalar/DCE.cpp

  • LLVMBool LLVMRemarkParserHasError (LLVMRemarkParserRef Parser)

    Returns `1` if the parser encountered an error while parsing the buffer.

    Defined at line 143 of file llvm/lib/Remarks/RemarkParser.cpp

  • void LLVMContextDispose (LLVMContextRef C)

    Destroy a context instance.

    This should be called for every call to LLVMContextCreate() or memory

    will be leaked.

    Defined at line 143 of file llvm/lib/IR/Core.cpp

  • template <typename T>
    bool isTypeExcluded (LinePrinter & Printer, const T & Symbol)

    Defined at line 143 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • template <typename IRUnitT>
    const IRUnitT * unwrapIR (Any IR)

    Defined at line 143 of file llvm/lib/Passes/StandardInstrumentations.cpp

  • void cpuHelp (ArrayRef CPUNames)

    Display help for mcpu choices only

    Defined at line 143 of file llvm/lib/MC/MCSubtargetInfo.cpp

  • uint64_t round_down_to_power_of_2 (uint64_t x)

    Largest power of two less than or equal to x. As a special case, returns 1

    when x is 0.

    Defined at line 144 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • bool isPrefixedOrGrouping (const Option * O)

    Defined at line 144 of file llvm/lib/Support/CommandLine.cpp

  • ElfType getOutputElfType (const MachineInfo & MI)

    Defined at line 144 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • bool setDoesNotThrow (Function & F)

    Defined at line 144 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • unsigned int numberCtrlDepsInSU (SUnit * SU)

    Defined at line 144 of file llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp

  • void warn (Error Err, Twine FileName, Twine Context, Twine Archive)

    Defined at line 144 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • template <typename GetTrapBBT>
    void insertBoundsCheck (Value * Or, BuilderTy & IRB, GetTrapBBT GetTrapBB)

    Adds run-time bounds checks to memory accessing instructions.

    is the condition that should guard the trap.

    is a callable that returns the trap BB to use on failure.

    Defined at line 144 of file llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp

  • std::optional<llvm::InlineCost> getDefaultInlineAdvice (CallBase & CB, FunctionAnalysisManager & FAM, const InlineParams & Params)

    Defined at line 144 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • BlockFlagsVector computeBlockInfo (const MachineFunction & MF, const MachineBasicBlock * PrologueBlock)

    Computes the frame information for each block in the function. Frame info

    for a block is inferred from its predecessors.

    Defined at line 144 of file llvm/lib/CodeGen/CFIFixup.cpp

  • Expected getAllDBDirs (StringRef Path, bool IncludeCorrupt)

    Defined at line 144 of file llvm/lib/CAS/UnifiedOnDiskCache.cpp

  • Error readMachOHeader (MachOObjectFile * Obj, RecordsSlice & Slice)

    Defined at line 144 of file llvm/lib/TextAPI/BinaryReader/DylibReader.cpp

  • unsigned int getScatteredRelocationAddress (const MachO::any_relocation_info & RE)

    Defined at line 145 of file llvm/lib/Object/MachOObjectFile.cpp

  • void setCrashLogMessage (const char * msg)

    Defined at line 145 of file llvm/lib/Support/PrettyStackTrace.cpp

  • LLVMRemarkArgRef LLVMRemarkEntryGetFirstArg (LLVMRemarkEntryRef Remark)

    Get a new iterator to iterate over a remark's argument.

    If there are no arguments in

    the return value will be `NULL`.

    The lifetime of the returned value is bound to the lifetime of

    Defined at line 145 of file llvm/lib/Remarks/Remark.cpp

  • bool clobbersAllYmmAndZmmRegs (const MachineOperand & MO)

    Defined at line 145 of file llvm/lib/Target/X86/X86VZeroUpper.cpp

  • void llvm_blake3_hash_many_portable (const uint8_t *const * inputs, size_t num_inputs, size_t blocks, const uint32_t[8] key, uint64_t counter, _Bool increment_counter, uint8_t flags, uint8_t flags_start, uint8_t flags_end, uint8_t * out)

    Defined at line 145 of file llvm/lib/Support/BLAKE3/blake3_portable.c

  • Error processFileList ()

    Defined at line 145 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • void collectCastInstrs (Loop * TheLoop, Instruction * Exit, Type * RecurrenceType, SmallPtrSetImpl<Instruction *> & Casts, unsigned int & MinWidthCastToRecurTy)

    Collect cast instructions that can be ignored in the vectorizer's cost

    model, given a reduction exit value and the minimal type in which the

    reduction can be represented. Also search casts to the recurrence type

    to find the minimum width used by the recurrence.

    Defined at line 145 of file llvm/lib/Analysis/IVDescriptors.cpp

  • bool lowerObjCCall (Function & F, LibcallImpl NewFn, bool setNonLazyBind)

    Defined at line 145 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • void scalarizeMaskedLoad (const DataLayout & DL, bool HasBranchDivergence, CallInst * CI, DomTreeUpdater * DTU, bool & ModifiedDT)

    Translate a masked load intrinsic like

    <

    16 x i32 >

    .masked.load(

    <

    16 x i32>* %addr,

    <

    16 x i1> %mask,

    <

    16 x i32> %passthru)

    to a chain of basic blocks, with loading element one-by-one if

    the appropriate mask bit is set

    %1 = bitcast i8* %addr to i32*

    %2 = extractelement

    <

    16 x i1> %mask, i32 0

    br i1 %2, label %cond.load, label %else

    cond.load: ; preds = %0

    %3 = getelementptr i32* %1, i32 0

    %4 = load i32* %3

    %5 = insertelement

    <

    16 x i32> %passthru, i32 %4, i32 0

    br label %else

    else: ; preds = %0, %cond.load

    %res.phi.else = phi

    <

    16 x i32> [ %5, %cond.load ], [ poison, %0 ]

    %6 = extractelement

    <

    16 x i1> %mask, i32 1

    br i1 %6, label %cond.load1, label %else2

    cond.load1: ; preds = %else

    %7 = getelementptr i32* %1, i32 1

    %8 = load i32* %7

    %9 = insertelement

    <

    16 x i32> %res.phi.else, i32 %8, i32 1

    br label %else2

    else2: ; preds = %else, %cond.load1

    %res.phi.else3 = phi

    <

    16 x i32> [ %9, %cond.load1 ], [ %res.phi.else, %else ]

    %10 = extractelement

    <

    16 x i1> %mask, i32 2

    br i1 %10, label %cond.load4, label %else5

    Defined at line 145 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • int addUnwindMapEntry (WinEHFuncInfo & FuncInfo, int ToState, const BasicBlock * BB)

    Defined at line 146 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • bool isKnownLibFunction (Function & F, TargetLibraryInfo & TLI)

    Defined at line 146 of file llvm/lib/Analysis/LazyCallGraph.cpp

  • bool upgradeX86BF16Intrinsic (Function * F, Intrinsic::ID IID, Function *& NewFn)

    Defined at line 146 of file llvm/lib/IR/AutoUpgrade.cpp

  • void printBinaryIdsInternal (raw_ostream & OS, ArrayRef BinaryIds)

    Defined at line 146 of file llvm/lib/ProfileData/InstrProfReader.cpp

  • basic_string memberAccess (MemberAccess Access)

    Defined at line 146 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • void collectPassNames (const TestRunner & Tester, SmallStringSet & NameSet)

    Built a set of available delta passes.

    Defined at line 146 of file llvm/tools/llvm-reduce/DeltaManager.cpp

  • int generateModuleMap (int & Modules)

    Defined at line 146 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • DiffOutput getSingleAttrDiff (const std::vector<InterfaceFileRef> & IRefVec, basic_string Name, InterfaceInputOrder Order)

    Defined at line 146 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • void demangleLine (llvm::raw_ostream & OS, StringRef Mangled, bool Split)

    If 'Split' is true, then 'Mangled' is broken into individual words and each

    word is demangled. Otherwise, the entire string is treated as a single

    mangled item. The result is output to 'OS'.

    Defined at line 146 of file llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp

  • void reportTestFailure (const TestData & TD, StringRef ActualStr, bool IsXFail)

    Defined at line 146 of file llvm/utils/llvm-test-mustache-spec/llvm-test-mustache-spec.cpp

  • ParseRet tryParseLinearWithRuntimeStep (StringRef & ParseString, VFParamKind & PKind, int & StepOrPos)

    The function looks for the following string at the beginning of

    the input string `ParseString`:

    <token

    >

    <number

    >

    <token

    > is one of "ls", "Rs", "Us" or "Ls".

    On success, it removes the parsed parameter from `ParseString`,

    sets `PKind` to the correspondent enum value, sets `StepOrPos` to

    <number

    >, and return success. On a syntax error, it return a

    parsing error. If nothing is parsed, it returns std::nullopt.

    Defined at line 146 of file llvm/lib/IR/VFABIDemangler.cpp

  • bool stripDebugDeclareImpl (Module & M)

    Defined at line 146 of file llvm/lib/Transforms/IPO/StripSymbols.cpp

  • const char * LLVMRemarkParserGetErrorMessage (LLVMRemarkParserRef Parser)

    Returns a null-terminated string containing an error message.

    In case of no error, the result is `NULL`.

    The memory of the string is bound to the lifetime of

    If

    LLVMRemarkParserDispose() is called, the memory of the string will be

    released.

    Defined at line 147 of file llvm/lib/Remarks/RemarkParser.cpp

  • unsigned int LLVMGetMDKindIDInContext (LLVMContextRef C, const char * Name, unsigned int SLen)

    Defined at line 147 of file llvm/lib/IR/Core.cpp

  • FoldingSetBase::Node * GetNextPtr (void * NextInBucketPtr)

    GetNextPtr - In order to save space, each bucket is a

    singly-linked-list. In order to make deletion more efficient, we make

    the list circular, so we can delete a node without computing its hash.

    The problem with this is that the start of the hash buckets are not

    Nodes. If NextInBucketPtr is a bucket pointer, this method returns null:

    use GetBucketPtr when this happens.

    Defined at line 147 of file llvm/lib/Support/FoldingSet.cpp

  • bool isTypeExcluded (LinePrinter & Printer, const PDBSymbolTypeEnum & Enum)

    Defined at line 147 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • void addArgLocs (MemoryEffects & ME, const CallBase * Call, ModRefInfo ArgMR, AAResults & AAR)

    Defined at line 147 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool inlineHistoryIncludes (Function * F, int InlineHistoryID, const SmallVectorImpl<std::pair<Function *, int>> & InlineHistory)

    Return true if the specified inline history ID

    indicates an inline history that includes the specified function.

    Defined at line 147 of file llvm/lib/Transforms/IPO/Inliner.cpp

  • GlobalVariable * getGlobalForName (GlobalVariable * G)

    Defined at line 147 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • AllocationType addCallStack (CallStackTrie & AllocTrie, const AllocationInfo * AllocInfo, uint64_t FullStackId)

    Defined at line 147 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • bool isLoopNeverExecuted (Loop * L)

    This function returns true if there is no viable path from the

    entry block to the header of

    Right now, it only does

    a local search to save compile time.

    Defined at line 147 of file llvm/lib/Transforms/Scalar/LoopDeletion.cpp

  • uint32_t counter_low (uint64_t counter)

    Defined at line 148 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • void writeCounter (ArrayRef Expressions, Counter C, raw_ostream & OS)

    Defined at line 148 of file llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp

  • void initializePEILegacyPassOnce (PassRegistry & Registry)

    Defined at line 148 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • std::optional<APInt> extractConstantBits (const Constant * C, unsigned int NumBits)

    Defined at line 148 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • void MarkBlocksLiveIn (BasicBlock * BB, SmallPtrSetImpl<BasicBlock *> & LiveBBs)

    MarkBlocksLiveIn - Insert BB and all of its predecessors into LiveBBs until

    we reach blocks we've already seen.

    Defined at line 148 of file llvm/lib/CodeGen/SjLjEHPrepare.cpp

  • bool isInput (const ArrayRef<StringRef> & Prefixes, StringRef Arg)

    Defined at line 148 of file llvm/lib/Option/OptTable.cpp

  • KnownBits extractBits (unsigned int BitWidth, const KnownBits & SrcOpKnown, const KnownBits & OffsetKnown, const KnownBits & WidthKnown)

    Bitfield extract is computed as (Src >> Offset)

    &

    Mask, where Mask is

    created using Width. Use this function when the inputs are KnownBits

    objects. TODO: Move this KnownBits.h if this is usable in more cases.

    Defined at line 148 of file llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp

  • bool inThisOrder (const Instruction * Src, const Instruction * Dst)

    Return true if

    appears before

    in the same basic block.

    Precondition:

    and

    are distinct instructions within the same

    basic block.

    Defined at line 148 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • Value * handleOtherCmpSelSimplifications (Value * TCmp, Value * FCmp, Value * Cond, const SimplifyQuery & Q, unsigned int MaxRecurse)

    We know comparison with both branches of select can be simplified, but they

    are not equal. This routine handles some logical simplifications.

    Defined at line 148 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void updateBranches (MachineFunction & MF, const int & PreLayoutFallThroughs)

    This function updates and optimizes the branching instructions of every basic

    block in a given function to account for changes in the layout.

    Defined at line 148 of file llvm/lib/CodeGen/BasicBlockSections.cpp

  • Value * LowerCTPOP (LLVMContext & Context, Value * V, Instruction * IP)

    Emit the code to lower ctpop of V before the specified instruction IP.

    Defined at line 148 of file llvm/lib/CodeGen/IntrinsicLowering.cpp

  • Value * tryReplaceCallWithOperator (Oracle & O, Module & M, CallBase * CB)

    Defined at line 148 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp

  • void updatePredecessorProfileMetadata (PHINode * PN, BasicBlock * BB)

    Update branch probability information according to conditional

    branch probability. This is usually made possible for cloned branches

    in inline instances by the context specific profile in the caller.

    For instance,

    [Block PredBB]

    [Branch PredBr]

    if (t) {

    Block A;

    } else {

    Block B;

    }

    [Block BB]

    cond = PN([true, %A], [..., %B]); // PHI node

    [Branch CondBr]

    if (cond) {

    ... // P(cond == true) = 1%

    }

    Here we know that when block A is taken, cond must be true, which means

    P(cond == true | A) = 1

    Given that P(cond == true) = P(cond == true | A) * P(A) +

    P(cond == true | B) * P(B)

    we get:

    P(cond == true ) = P(A) + P(cond == true | B) * P(B)

    which gives us:

    P(A) is less than P(cond == true), i.e.

    P(t == true)

    <

    = P(cond == true)

    In other words, if we know P(cond == true) is unlikely, we know

    that P(t == true) is also unlikely.

    Defined at line 148 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • bool unifyLoopExits (DominatorTree & DT, LoopInfo & LI, Loop * L)

    Defined at line 148 of file llvm/lib/Transforms/Utils/UnifyLoopExits.cpp

  • Value * convertStrToInt (CallInst * CI, StringRef & Str, Value * EndPtr, uint64_t Base, bool AsSigned, IRBuilderBase & B)

    Convert the entire string Str representing an integer in Base, up to

    the terminating nul if present, to a constant according to the rules

    of strtoul[l] or, when AsSigned is set, of strtol[l]. On success

    return the result, otherwise null.

    The function assumes the string is encoded in ASCII and carefully

    avoids converting sequences (including "") that the corresponding

    library call might fail and set errno for.

    Defined at line 148 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void initializeFixupBWInstPassPassOnce (PassRegistry & Registry)

    Defined at line 149 of file llvm/lib/Target/X86/X86FixupBWInsts.cpp

  • void badUsage (Twine Error)

    Show the error plus the usage message, and exit.

    Defined at line 149 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • int32_t readVarint32 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 149 of file llvm/lib/Object/WasmObjectFile.cpp

  • void dumpAllocas (const SmallVectorImpl<coro::AllocaInfo> & Allocas)

    Defined at line 149 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • optional getSizeInBytes (optional SizeInBits)

    Defined at line 149 of file llvm/lib/Transforms/Utils/MemoryOpRemark.cpp

  • LLVMBool LLVMInitializeNativeAsmParser ()

    LLVMInitializeNativeTargetAsmParser - The main program should call this

    function to initialize the parser for the native target corresponding to the

    host.

    Defined at line 149 of file llvm/include/llvm-c/Target.h

  • LLVMBool LLVMInitializeNativeAsmParser ()

    LLVMInitializeNativeTargetAsmParser - The main program should call this

    function to initialize the parser for the native target corresponding to the

    host.

    Defined at line 149 of file llvm/include/llvm-c/Target.h

  • Expected searchOrDefine (const unsigned char * HRef, xmlNodePtr Node)

    Search for prefix-defined namespace specified by HRef, starting on Node and

    continuing recursively upwards. If it is found, then return it. If it is

    not found, then prefix-define that namespace on the node and return a

    reference to it.

    Defined at line 149 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • bool doesRoundUp (char Digit)

    Defined at line 149 of file llvm/lib/Support/ScaledNumber.cpp

  • bool getSummaryFromMD (MDTuple * MD, SummaryEntryVector & Summary)

    Parse an MDTuple representing detailed summary.

    Defined at line 149 of file llvm/lib/IR/ProfileSummary.cpp

  • bool canReplaceFuncUsers (const Function & F, Type * NewRetTy)

    Check if all the callsites of the void function are void, or happen to

    incorrectly use the new return type.

    TODO: We could make better effort to handle call type mismatches.

    Defined at line 149 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • SmallVector optimizeDwarfOperations (ArrayRef WorkingOps)

    This function will convert:

    1. DW_OP_constu

    <const

    -val> DW_OP_plus to DW_OP_plus_uconst

    2. DW_OP_constu, 0 to DW_OP_lit0

    Defined at line 149 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • void initializeCFIInstrInserterPassOnce (PassRegistry & Registry)

    Defined at line 150 of file llvm/lib/CodeGen/CFIInstrInserter.cpp

  • uint32_t counter_high (uint64_t counter)

    Defined at line 150 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • template <typename... Args>
    void formatInternal (LinePrinter & Printer, bool Append, Args &&... args)

    Defined at line 150 of file llvm/lib/DebugInfo/PDB/Native/InputFile.cpp

  • bool getPlainRelocationPCRel (const MachOObjectFile & O, const MachO::any_relocation_info & RE)

    Defined at line 150 of file llvm/lib/Object/MachOObjectFile.cpp

  • bool hasSection (ObjectFile & File, StringRef SectionName)

    Defined at line 150 of file llvm/unittests/ObjCopy/ObjCopyTest.cpp

  • Object encodeError (Error Error)

    Encode the given error as a JSON object.

    Defined at line 150 of file llvm/lib/Support/LSP/Transport.cpp

  • void emitRISCVProfiles (const RecordKeeper & Records, raw_ostream & OS)

    Defined at line 150 of file llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  • template <typename T>
    bool isSubset (ArrayRef<T> C0, ArrayRef<T> C1)

    Return true if

    is a subset of

    Note that both arrays are

    expected to be sorted.

    Defined at line 150 of file llvm/lib/Frontend/OpenMP/OMPContext.cpp

  • bool computeUnrollAndJamCount (Loop * L, Loop * SubLoop, const TargetTransformInfo & TTI, DominatorTree & DT, LoopInfo * LI, AssumptionCache * AC, ScalarEvolution & SE, const SmallPtrSetImpl<const Value *> & EphValues, OptimizationRemarkEmitter * ORE, unsigned int OuterTripCount, unsigned int OuterTripMultiple, const UnrollCostEstimator & OuterUCE, unsigned int InnerTripCount, unsigned int InnerLoopSize, TargetTransformInfo::UnrollingPreferences & UP, TargetTransformInfo::PeelingPreferences & PP)

    Calculates unroll and jam count and writes it to UP.Count. Returns true if

    unroll count was set explicitly.

    Defined at line 150 of file llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp

  • void dumpAttribute (raw_ostream & OS, const DWARFDie & Die, const DWARFAttribute & AttrValue, unsigned int Indent, DIDumpOptions DumpOpts)

    Defined at line 150 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • void initializeOptimizationRemarkEmitterWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 151 of file llvm/lib/Analysis/OptimizationRemarkEmitter.cpp

  • bool layoutOptionalHeader (COFFParser & CP)

    Take a CP and assign addresses and sizes to everything. Returns false if the

    layout is not valid to do.

    Defined at line 151 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • basic_string generateRAUWIR (unsigned int Size)

    Defined at line 151 of file llvm/benchmarks/SandboxIRBench.cpp

  • StringRef getLeafTypeName (TypeLeafKind LT)

    Defined at line 151 of file llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp

  • bool parseSummaryIndexAssemblyInto (MemoryBufferRef F, ModuleSummaryIndex & Index, SMDiagnostic & Err)

    Defined at line 151 of file llvm/lib/AsmParser/Parser.cpp

  • void dropIntrinsicWithUnknownMetadataArgument (IntrinsicInst * II)

    Defined at line 151 of file llvm/lib/AsmParser/LLParser.cpp

  • void generateClauseEnumVal (ArrayRef Records, raw_ostream & OS, const DirectiveLanguage & DirLang, std::string & EnumHelperFuncs)

    Generate enums for values that clauses can take.

    Also generate function declarations for get

    <Enum

    >Name(StringRef Str).

    Defined at line 151 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • bool isAsciiString (StringRef S)

    Defined at line 152 of file llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp

  • void LLVMRemarkParserDispose (LLVMRemarkParserRef Parser)

    Releases all the resources used by

    Defined at line 152 of file llvm/lib/Remarks/RemarkParser.cpp

  • unsigned int LLVMGetMDKindID (const char * Name, unsigned int SLen)

    Defined at line 152 of file llvm/lib/IR/Core.cpp

  • bool isPotentialBlockedMemCpyLd (unsigned int Opcode)

    Defined at line 152 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • iterator_range<BasicBlock::iterator> getInsertionRange (BasicBlock & BB)

    Defined at line 152 of file llvm/lib/FuzzMutate/IRMutator.cpp

  • void lowerAwaitSuspends (Function & F, coro::Shape & Shape)

    Defined at line 152 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • basic_string getEncodedEmitStr (StringRef NamedValue, unsigned int NumBytes)

    Defined at line 152 of file llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp

  • bool setDoesNotCallback (Function & F)

    Defined at line 152 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void recordConditions (CallBase & CB, BasicBlock * Pred, ConditionsTy & Conditions, BasicBlock * StopAt)

    Record ICmp conditions relevant to any argument in CB following Pred's

    single predecessors. If there are conflicting conditions along a path, like

    x == 1 and x == 0, the first condition will be used. We stop once we reach

    an edge to StopAt.

    Defined at line 152 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • void executeFRemInst (GenericValue & Dest, GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 152 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • double interpolateHue (double H0, double H1, double T)

    The Hue component of the HSV interpolation Routine

    Defined at line 152 of file llvm/tools/llvm-xray/xray-color-helper.cpp

  • unique_ptr createELFWriter (const CommonConfig & Config, Object & Obj, raw_ostream & Out, ElfType OutputElfType)

    Defined at line 152 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • bool handleArchive (StringRef Filename, Archive & Arch, OutlinedHashTreeRecord & GlobalOutlineRecord, StableFunctionMapRecord & GlobalFunctionMapRecord)

    Defined at line 152 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • Config parseLipoOptions (ArrayRef<const char *> ArgsArr)

    Defined at line 152 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • bool isSupportedSectionKind (DWARFSectionKind Kind)

    Defined at line 153 of file llvm/lib/DWP/DWP.cpp

  • bool isLabelChar (char C)

    isLabelChar - Return true for [-a-zA-Z$._0-9].

    Defined at line 153 of file llvm/lib/AsmParser/LLLexer.cpp

  • WrapperFunctionBuffer failingWrapper (const char * ArgData, size_t ArgSize)

    Defined at line 153 of file llvm/unittests/ExecutionEngine/Orc/WrapperFunctionUtilsTest.cpp

  • void eraseNewInstructions (SmallVector<Instruction *> & NewInsts)

    Defined at line 153 of file llvm/lib/FuzzMutate/RandomIRBuilder.cpp

  •  chunk_state_output (const llvm_blake3_chunk_state * self)

    Defined at line 153 of file llvm/lib/Support/BLAKE3/blake3.c

  • bool isInteresting (const Record * Rec)

    Defined at line 153 of file llvm/utils/TableGen/X86InstrMappingEmitter.cpp

  • bool stripNegationPrefix (StringRef & Name)

    Defined at line 153 of file llvm/lib/TargetParser/CSKYTargetParser.cpp

  • unsigned int numberCtrlPredInSU (SUnit * SU)

    Defined at line 153 of file llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp

  • bool doesStoreDominatesAllLatches (BasicBlock * StoreBlock, Loop * L, DominatorTree * DT)

    Check if the store dominates all latches, so as long as there is no

    intervening store this value will be loaded in the next iteration.

    Defined at line 153 of file llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp

  • uint32_t load32 (const void * src)

    Defined at line 154 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • Value * callAppendStringN (IRBuilder<> & Builder, Value * Desc, Value * Str, Value * Length, bool isLast)

    Defined at line 154 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • Cursor lexStringConstant (Cursor C, function_ref ErrorCallback)

    Lex a string constant using the following regular expression:

    "

    [^

    "

    ]*

    "

    Defined at line 154 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void printUnwindRow (const UnwindRow & Row, raw_ostream & OS, DIDumpOptions DumpOpts, unsigned int IndentLevel)

    Print an UnwindRow to the stream.

    Parameters

    Row the UnwindRow to print.
    OS the stream to use for output.
    MRI register information that helps emit register names insteead of raw register numbers.
    IsEH true if the DWARF Call Frame Information is from .eh_frame instead of from .debug_frame. This is needed for register number conversion because some register numbers differ between the two sections for certain architectures like x86.
    IndentLevel specify the indent level as an integer. The UnwindRow will be output to the stream preceded by 2 * IndentLevel number of spaces.

    Defined at line 154 of file llvm/lib/DebugInfo/DWARF/DWARFUnwindTablePrinter.cpp

  • void BM_Mustache_StringRendering (benchmark::State & state, const std::string & TplStr)

    Tests the performance of rendering a large string with various escaping

    syntaxes.

    Defined at line 154 of file llvm/benchmarks/Mustache.cpp

  • basic_string formatProcSymFlags (uint32_t IndentLevel, ProcSymFlags Flags)

    Defined at line 154 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • void remarkFlatAddrspaceAccess (OptimizationRemarkEmitter & ORE, const Function & Caller, const Instruction & Inst)

    Defined at line 154 of file llvm/lib/Analysis/KernelInfo.cpp

  • size_t byteSize (BTF::CommonType * Type)

    Compute record size for each BTF::CommonType sub-type

    (including entries in the tail position).

    Defined at line 154 of file llvm/lib/DebugInfo/BTF/BTFParser.cpp

  • unique_ptr loadArFile (const char * Argv0, unique_ptr Buffer, LLVMContext & Context)

    Defined at line 154 of file llvm/tools/llvm-link/llvm-link.cpp

  • void rewriteMaterializableInstructions (const SmallMapVector<Instruction *, std::unique_ptr<RematGraph>, 8> & AllRemats)

    For each instruction identified as materializable across the suspend point,

    and its associated DAG of other rematerializable instructions,

    recreate the DAG of instructions after the suspend point.

    Defined at line 154 of file llvm/lib/Transforms/Coroutines/MaterializationUtils.cpp

  • optional collectAddressSymbols (void ** AddressList, unsigned int AddressCount, const char * MainExecutableName, const std::string & LLVMSymbolizerPath)

    Reads a file

    written by llvm-symbolizer containing function

    names and source locations for the addresses in

    and returns

    the strings in a vector of pairs, where the first pair element is the index

    of the corresponding entry in AddressList and the second is the symbolized

    frame, in a format based on the sanitizer stack trace printer, with the

    exception that it does not write out frame numbers (i.e. "#2 " for the

    third address), as it is not assumed that

    corresponds to a

    single stack trace.

    There may be multiple returned entries for a single

    entry if

    that frame address corresponds to one or more inlined frames; in this case,

    all frames for an address will appear contiguously and in-order.

    Defined at line 154 of file llvm/lib/Support/Signals.cpp

  • void initializeFixupLEAPassPassOnce (PassRegistry & Registry)

    Defined at line 155 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • bool stripExperimentalPrefix (StringRef & Ext)

    Defined at line 155 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • bool isCopyLike (const MachineInstr & MI)

    Check whether or not

    should be treated like a copy

    for the mappings.

    Copy like instruction are special for mapping because

    they don't have actual register constraints. Moreover,

    they sometimes have register classes assigned and we can

    just use that instead of failing to provide a generic mapping.

    Defined at line 155 of file llvm/lib/CodeGen/RegisterBankInfo.cpp

  • void initializeUniformityInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 155 of file llvm/lib/Analysis/UniformityAnalysis.cpp

  • vector toNullTerminatedCStringArray (ArrayRef Strings, StringSaver & Saver)

    Defined at line 155 of file llvm/lib/Support/Unix/Program.inc

  • void initializeNaryReassociateLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 155 of file llvm/lib/Transforms/Scalar/NaryReassociate.cpp

  • uint32_t handleNestedType (ArrayRef Data, uint32_t Offset, SmallVectorImpl<TiReference> & Refs)

    Defined at line 155 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • const char * getZeroCostOpName (unsigned short Op)

    Defined at line 155 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • void addBlockAndPredsToSet (BasicBlock * InputBB, BasicBlock * StopBlock, SmallPtrSetImpl<BasicBlock *> & Blocks)

    Add the specified block, and all of its predecessors, to the specified set,

    if it's not already in there. Stop predecessor traversal when we reach

    StopBlock.

    Defined at line 155 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • LLVMRemarkArgRef LLVMRemarkEntryGetNextArg (LLVMRemarkArgRef It, LLVMRemarkEntryRef Remark)

    Get the next argument in

    from the position of

    Returns `NULL` if there are no more arguments available.

    The lifetime of the returned value is bound to the lifetime of

    Defined at line 155 of file llvm/lib/Remarks/Remark.cpp

  • DIImportedEntity * createImportedModule (LLVMContext & C, Tag Tag, DIScope * Context, Metadata * NS, DIFile * File, unsigned int Line, StringRef Name, MDTupleTypedArrayWrapper Elements, SmallVectorImpl<TrackingMDNodeRef> & ImportedModules)

    Defined at line 155 of file llvm/lib/IR/DIBuilder.cpp

  • SmallString<0> ProcessChunkFromSerializedBitcode (Chunk ChunkToCheckForUninterestingness, const TestRunner & Test, ReductionFunc ExtractChunksFromModule, const int & UninterestingChunks, ArrayRef ChunksStillConsideredInteresting, StringRef OriginalBC, std::atomic<bool> & AnyReduced)

    Defined at line 155 of file llvm/tools/llvm-reduce/deltas/Delta.cpp

  • void addTryBlockMapEntry (WinEHFuncInfo & FuncInfo, int TryLow, int TryHigh, int CatchHigh, ArrayRef<const CatchPadInst *> Handlers)

    Defined at line 155 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • basic_string getIntrinsicNameImpl (Intrinsic::ID Id, ArrayRef Tys, Module * M, FunctionType * FT, bool EarlyModuleCheck)

    Defined at line 155 of file llvm/lib/IR/Intrinsics.cpp

  • void writeUnwindRecord (const PerfJITCodeUnwindingInfoRecord & UnwindRecord)

    Defined at line 155 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • bool simplifyCommonValuePhi (PHINode * P, LazyValueInfo * LVI, DominatorTree * DT)

    Try to simplify a phi with constant incoming values that match the edge

    values of a non-constant value on all other edges:

    bb0:

    %isnull = icmp eq i8* %x, null

    br i1 %isnull, label %bb2, label %bb1

    bb1:

    br label %bb2

    bb2:

    %r = phi i8* [ %x, %bb1 ], [ null, %bb0 ]

    -->

    %r = %x

    Defined at line 155 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • MarshallingInfo createMarshallingInfo (const Record & R)

    Defined at line 155 of file llvm/utils/TableGen/OptionParserEmitter.cpp

  • MapVector orderModule (const Module * M)

    Defined at line 155 of file llvm/lib/IR/AsmWriter.cpp

  • bool readLocationInfo (LocationInfoTy & LocationInfo)

    Defined at line 155 of file llvm/tools/llvm-opt-report/OptReport.cpp

  • unsigned int LLVMGetSyncScopeID (LLVMContextRef C, const char * Name, size_t SLen)

    Maps a synchronization scope name to a ID unique within this context.

    Defined at line 156 of file llvm/lib/IR/Core.cpp

  • Error makeStringError (StringRef Msg)

    Defined at line 156 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • template <class T>
    T diff (T L, T R)

    Defined at line 156 of file llvm/tools/llvm-xray/xray-graph.cpp

  • Error registerEHFrameWrapper (ExecutorAddrRange EHFrame)

    Defined at line 156 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp

  • bool hasFPAssociativeFlags (Instruction * I)

    Return true if I is an instruction with the FastMathFlags that are needed

    for general reassociation set. This is not the same as testing

    Instruction::isAssociative() because it includes operations like fsub.

    (This routine is only intended to be called for floating-point operations.)

    Defined at line 156 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • uint32_t readVaruint32 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 156 of file llvm/lib/Object/WasmObjectFile.cpp

  • void initializeAlwaysInlinerLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 156 of file llvm/lib/Transforms/IPO/AlwaysInliner.cpp

  • bool upgradeX86BF16DPIntrinsic (Function * F, Intrinsic::ID IID, Function *& NewFn)

    Defined at line 156 of file llvm/lib/IR/AutoUpgrade.cpp

  • void fail (Twine Error)

    Show the error message and exit.

    Defined at line 156 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • template <typename LCType>
    void updateLoadCommandPayloadString (LoadCommand & LC, StringRef S)

    Defined at line 156 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • pair nthSymbolAddress (PublicsStream * Publics, SymbolStream * Symbols, size_t N)

    Defined at line 156 of file llvm/unittests/DebugInfo/PDB/PublicsStreamTest.cpp

  • template <typename HasherT, llvm::endianness Endianness>
    void addHash (llvm::HashBuilder<HasherT, Endianness> & HBuilder, const StructWithFastHash & Value)

    If possible, we want to hash both `I` and `C` in a single `update`

    call for performance concerns.

    Defined at line 156 of file llvm/unittests/Support/HashBuilderTest.cpp

  • basic_string methodKind (MethodKind Kind)

    Defined at line 156 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • uint32_t get_max_thread_name_length_impl ()

    Defined at line 156 of file llvm/lib/Support/Unix/Threading.inc

  • std::optional<FixedVectorType *> getKnownTypeFromMaskedOp (Value * Mask, VectorType * Ty)

    If the mask for a memory op is a get active lane mask intrinsic

    we can possibly infer the size of memory written or read

    Defined at line 156 of file llvm/lib/Analysis/MemoryLocation.cpp

  • bool isPotentialBlockedMemCpyPair (unsigned int LdOpcode, unsigned int StOpcode)

    Defined at line 156 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • void TestFunc (std::atomic_int & checked_in, int i)

    Defined at line 157 of file llvm/unittests/Support/ThreadPool.cpp

  • void initializeWasmEHPreparePassOnce (PassRegistry & Registry)

    Defined at line 157 of file llvm/lib/CodeGen/WasmEHPrepare.cpp

  • void moveBBContents (BasicBlock & SourceBB, BasicBlock & TargetBB)

    Move the contents of

    to before the last instruction of

    Parameters

    SourceBB - the BasicBlock to pull Instructions from.
    TargetBB - the BasicBlock to put Instruction into.

    Defined at line 157 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • bool getScatteredRelocationPCRel (const MachO::any_relocation_info & RE)

    Defined at line 157 of file llvm/lib/Object/MachOObjectFile.cpp

  • bool isTypeExcluded (LinePrinter & Printer, const PDBSymbolTypeTypedef & Typedef)

    Defined at line 157 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • void initializeStackProtectorPassOnce (PassRegistry & Registry)

    Defined at line 157 of file llvm/lib/CodeGen/StackProtector.cpp

  • void ** GetBucketPtr (void * NextInBucketPtr)

    testing.

    Defined at line 157 of file llvm/lib/Support/FoldingSet.cpp

  • Align getFnStackAlignment (const TargetSubtargetInfo & STI, const Function & F)

    Defined at line 157 of file llvm/lib/CodeGen/MachineFunction.cpp

  • ConstantFPRange setNaNField (const ConstantFPRange & CR, Predicate Pred)

    Defined at line 157 of file llvm/lib/IR/ConstantFPRange.cpp

  • void emitMagic (raw_ostream & OS)

    Defined at line 157 of file llvm/lib/Remarks/YAMLRemarkSerializer.cpp

  • unsigned int findUseIdx (const MachineInstr * MI, unsigned int UseOperIdx)

    Find the use index of this operand. This is independent of the instruction's

    def operands.

    Note that uses are not determined by the operand's isUse property, which

    is simply the inverse of isDef. Here we consider any readsReg operand to be

    a "use". The machine model allows an operand to be both a Def and Use.

    Defined at line 157 of file llvm/lib/CodeGen/TargetSchedule.cpp

  • void writeUstarHeader (raw_fd_ostream & OS, StringRef Prefix, StringRef Name, size_t Size)

    The PAX header is an extended format, so a PAX header needs

    to be followed by a "real" header.

    Defined at line 157 of file llvm/lib/Support/TarWriter.cpp

  • bool ParseHead (const StringRef & Input, StringRef & FName, uint64_t & NumSamples, uint64_t & NumHeadSamples)

    Parse

    as function head.

    Parse one line of

    and update function name in

    function's total sample count in

    function's entry

    count in

    Defined at line 157 of file llvm/lib/ProfileData/SampleProfReader.cpp

  • bool hasYmmOrZmmReg (MachineInstr & MI)

    Defined at line 157 of file llvm/lib/Target/X86/X86VZeroUpper.cpp

  • int gsiRecordCmp (StringRef S1, StringRef S2)

    See `caseInsensitiveComparePchPchCchCch` in gsi.cpp

    Defined at line 157 of file llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp

  • template <typename MatcherT>
    pair getNearestMatchingScope (const DILocation * L1, const DILocation * L2)

    Returns the nearest matching scope inside a subprogram.

    Defined at line 157 of file llvm/lib/IR/DebugInfoMetadata.cpp

  • std::optional<APInt> getSplatableConstant (const Constant * C, unsigned int SplatBitWidth)

    Attempt to compute the splat width of bits data by normalizing the splat to

    remove undefs.

    Defined at line 157 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • std::pair<Value *, Value *> getShape (IntrinsicInst * II, unsigned int OpNo)

    TODO: Refine the row and col-in-bytes of tile to row and col of matrix.

    Defined at line 157 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • void initializeDXILMetadataAnalysisWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 158 of file llvm/lib/Analysis/DXILMetadataAnalysis.cpp

  • template <class Range>
    bool matchersRecordOperand (Range && R)

    Defined at line 158 of file llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp

  • void promoteModule (Module & TheModule, const ModuleSummaryIndex & Index, bool ClearDSOLocalOnDeclarations)

    Defined at line 158 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • void asyncFailingWrapperCaller (unique_function F, const char * ArgData, size_t ArgSize)

    Defined at line 158 of file llvm/unittests/ExecutionEngine/Orc/WrapperFunctionUtilsTest.cpp

  • size_t getNumLengthAsString (uint64_t num)

    Get the length of the string that represents

    in Radix including the

    leading 0x or 0 for hexadecimal and octal respectively.

    Defined at line 158 of file llvm/tools/llvm-size/llvm-size.cpp

  • void maybeFreeRetconStorage (int & Builder, const coro::Shape & Shape, Value * FramePtr, CallGraph * CG)

    Defined at line 158 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • DiffOutput getSingleAttrDiff (const std::vector<std::pair<Target, std::string>> & PairVec, basic_string Name, InterfaceInputOrder Order)

    Defined at line 158 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • unsigned int matchOption (const StringTable & StrTable, ArrayRef PrefixesTable, const OptTable::Info * I, StringRef Str, bool IgnoreCase)

    Defined at line 158 of file llvm/lib/Option/OptTable.cpp

  • SmallSet handlePassList (const TestRunner & Tester, const cl::list<std::string> & PassList)

    Verify all requested or skipped passes are valid names, and return them in a

    set.

    Defined at line 158 of file llvm/tools/llvm-reduce/DeltaManager.cpp

  • bool isProcessableCondBI (const ScalarEvolution & SE, const BranchInst * BI)

    Defined at line 158 of file llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp

  • Expected getAbsolutePath (StringRef Authority, StringRef Body)

    Defined at line 158 of file llvm/lib/Support/LSP/Protocol.cpp

  • bool isInertIntrinsic (unsigned int ID)

    A list of intrinsics that we know do not use objc pointers or decrement

    ref counts.

    Defined at line 158 of file llvm/lib/Analysis/ObjCARCInstKind.cpp

  • void initializeSCEVAAWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 159 of file llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp

  • template <typename RangeT>
    SmallVector getPtrVec (RangeT Range)

    Helper function for returning a vector of instruction pointers from a range

    of references.

    Defined at line 159 of file llvm/unittests/Transforms/Vectorize/SandboxVectorizer/IntervalTest.cpp

  • unsigned int getContributionIndex (DWARFSectionKind Kind, uint32_t IndexVersion)

    Convert an internal section identifier into the index to use with

    UnitIndexEntry::Contributions.

    Defined at line 159 of file llvm/lib/DWP/DWP.cpp

  • bool isInheritanceKind (const MemberPointerInfo & MPI, PointerToMemberRepresentation P1, PointerToMemberRepresentation P2)

    Defined at line 159 of file llvm/lib/DebugInfo/PDB/Native/NativeTypePointer.cpp

  • bool isReadWriteMemCall (const Instruction & I)

    ===- Helpers ------------------------------------------------------------===//

    Defined at line 159 of file llvm/lib/IR/MemoryModelRelaxationAnnotations.cpp

  • const char * isLabelTail (const char * CurPtr)

    isLabelTail - Return true if this pointer points to a valid end of a label.

    Defined at line 159 of file llvm/lib/AsmParser/LLLexer.cpp

  • StringRef getSamplerTypeName (SamplerType ST)

    Defined at line 159 of file llvm/lib/Analysis/DXILResource.cpp

  • const Function * getCalledFunction (const Value * V)

    clang-format on

    Defined at line 159 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • APInt runOpWithExpandOnOverflow (const APInt & A, const APInt & B, function_ref Op)

    Bring a and b to have the same width and then call op(a, b, overflow).

    If the overflow bit becomes set, resize a and b to double the width and

    call op(a, b, overflow), returning its result. The operation with double

    widths should not also overflow.

    Defined at line 159 of file llvm/lib/Support/SlowDynamicAPInt.cpp

  • TypeSize getMinimalExtentFrom (const Value & V, const LocationSize & LocSize, const DataLayout & DL, bool NullIsValidLoc)

    Return the minimal extent from

    to the end of the underlying object,

    assuming the result is used in an aliasing query. E.g., we do use the query

    location size and the fact that null pointers cannot alias here.

    Defined at line 159 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • error_code copyAccessAndModificationTime (StringRef Filename, const sys::fs::file_status & Stat)

    Set the access and modification time for the given file from the given

    status object.

    Defined at line 159 of file llvm/lib/Support/FileCollector.cpp

  • bool handleCompareAction (const Context & Ctx)

    Defined at line 159 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • bool reduceDbgValsBackwardScan (MachineBasicBlock & MBB)

    This analysis aims to remove redundant DBG_VALUEs by going backward

    in the basic block and removing all but the last DBG_VALUE for any

    given variable in a set of consecutive DBG_VALUE instructions.

    For example:

    (1) DBG_VALUE $edi, !"var1", ...

    (2) DBG_VALUE $esi, !"var2", ...

    (3) DBG_VALUE $edi, !"var1", ...

    ...

    in this case, we can remove (1).

    Defined at line 159 of file llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp

  • unsigned int LLVMGetEnumAttributeKindForName (const char * Name, size_t SLen)

    Return an unique id given the name of a enum attribute,

    or 0 if no attribute by that name exists.

    See http://llvm.org/docs/LangRef.html#parameter-attributes

    and http://llvm.org/docs/LangRef.html#function-attributes

    for the list of available attributes.

    NB: Attribute names and/or id are subject to change without

    going through the C API deprecation cycle.

    Defined at line 160 of file llvm/lib/IR/Core.cpp

  •  parent_output (const uint8_t[64] block, const uint32_t[8] key, uint8_t flags)

    Defined at line 160 of file llvm/lib/Support/BLAKE3/blake3.c

  • void error (Twine Message, Twine Path)

    Defined at line 160 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool setRetDoesNotAlias (Function & F)

    Defined at line 160 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • template <typename StrTy>
    bool convertToString (ArrayRef Record, unsigned int Idx, StrTy & Result)

    Convert a string from a record into an std::string, return true on failure.

    Defined at line 160 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void restoreIPandDebugLoc (llvm::IRBuilderBase & Builder, InsertPoint IP)

    This is wrapper over IRBuilderBase::restoreIP that also restores the current

    debug location to the last instruction in the specified basic block if the

    insert point points to the end of the block.

    Defined at line 160 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void load_key_words (const uint8_t[32] key, uint32_t[8] key_words)

    Defined at line 160 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • Error copyAttributeNamespace (xmlAttrPtr OriginalAttribute, xmlNodePtr OriginalNode, xmlAttrPtr AdditionalAttribute)

    Set the namespace of OrigionalAttribute on OriginalNode to be that of

    AdditionalAttribute's.

    Defined at line 160 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • std::optional<int> findPreviousSpillSlot (const Value * Val, SelectionDAGBuilder & Builder, int LookUpDepth)

    Utility function for reservePreviousStackSlotForValue. Tries to find

    stack slot index to which we have spilled value for previous statepoints.

    LookUpDepth specifies maximum DFS depth this function is allowed to look.

    Defined at line 160 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • Error parseCommand (StringRef BinaryName, bool IsAddr2Line, StringRef InputString, Command & Cmd, std::string & ModuleName, object::BuildID & BuildID, StringRef & Symbol, uint64_t & Offset)

    Defined at line 160 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • Error deregisterEHFrameWrapper (ExecutorAddrRange EHFrame)

    Defined at line 161 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp

  • void initializeRegionInfoPassPassOnce (PassRegistry & Registry)

    Defined at line 161 of file llvm/lib/Analysis/RegionInfo.cpp

  • LLVMBool LLVMInitializeNativeAsmPrinter ()

    LLVMInitializeNativeTargetAsmPrinter - The main program should call this

    function to initialize the printer for the native target corresponding to

    the host.

    Defined at line 161 of file llvm/include/llvm-c/Target.h

  • LLVMBool LLVMInitializeNativeAsmPrinter ()

    LLVMInitializeNativeTargetAsmPrinter - The main program should call this

    function to initialize the printer for the native target corresponding to

    the host.

    Defined at line 161 of file llvm/include/llvm-c/Target.h

  • void updateStat (GraphRenderer::TimeStat & S, int64_t L)

    Updates the statistics for a GraphRenderer::TimeStat

    Defined at line 161 of file llvm/tools/llvm-xray/xray-graph.cpp

  • MipsABI getMipsABI (const Triple & TT, StringRef ABIName)

    FIXME: This duplicates MipsABIInfo::computeTargetABI, but duplicating this is

    preferable to violating layering rules. Ideally that information should live

    in LLVM TargetParser, but for now we just duplicate some ABI name string

    logic for simplicity.

    Defined at line 161 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • GlobalVariable * getIndirectionGlobal (Module * M)

    Defined at line 161 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • Register findLocalRegDef (MachineInstr & MI)

    Return the defined register if this instruction defines exactly one

    virtual register and uses no other virtual registers. Otherwise return

    Register();

    Defined at line 161 of file llvm/lib/CodeGen/SelectionDAG/FastISel.cpp

  • Expected loadModule (StringRef Path, ThreadSafeContext TSCtx)

    Parse the bitcode module from the given path into a ThreadSafeModule.

    Defined at line 161 of file llvm/examples/OrcV2Examples/LLJITWithThinLTOSummaries/LLJITWithThinLTOSummaries.cpp

  • bool AddGlue (SDNode * N, SDValue Glue, bool AddGlue, SelectionDAG * DAG)

    Defined at line 161 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp

  • bool handleNDDOrNFInstructions (MachineFunction & MF, const X86Subtarget & ST)

    Defined at line 161 of file llvm/lib/Target/X86/X86SuppressAPXForReloc.cpp

  • unsigned int getPUSHOpcode (const X86Subtarget & ST)

    Push-Pop Acceleration (PPX) hint is used to indicate that the POP reads the

    value written by the PUSH from the stack. The processor tracks these marked

    instructions internally and fast-forwards register data between matching PUSH

    and POP instructions, without going through memory or through the training

    loop of the Fast Store Forwarding Predictor (FSFP). Instead, a more efficient

    memory-renaming optimization can be used.

    The PPX hint is purely a performance hint. Instructions with this hint have

    the same functional semantics as those without. PPX hints set by the

    compiler that violate the balancing rule may turn off the PPX optimization,

    but they will not affect program semantics.

    Hence, PPX is used for balanced spill/reloads (Exceptions and setjmp/longjmp

    are not considered).

    PUSH2 and POP2 are instructions for (respectively) pushing/popping 2

    GPRs at a time to/from the stack.

    Defined at line 162 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • LLVMBool LLVMObjectFileIsSectionIteratorAtEnd (LLVMBinaryRef BR, LLVMSectionIteratorRef SI)

    Returns whether the given section iterator is at the end.

    Defined at line 162 of file llvm/lib/Object/Object.cpp

  • unsigned int getPlainRelocationLength (const MachOObjectFile & O, const MachO::any_relocation_info & RE)

    Defined at line 162 of file llvm/lib/Object/MachOObjectFile.cpp

  • template <typename RecordT>
    uint64_t getUdtSize (CVRecord CVT)

    Defined at line 162 of file llvm/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp

  • MemTransferInst * isOnlyCopiedFromConstantMemory (AAResults * AA, AllocaInst * AI, SmallVectorImpl<Instruction *> & ToDelete)

    isOnlyCopiedFromConstantMemory - Return true if the specified alloca is only

    modified by a copy from a constant memory location. If we can prove this, we

    can replace any uses of the alloca with uses of the memory location

    directly.

    Defined at line 162 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • void combineWeight (Weight & W, const Weight & OtherW)

    Defined at line 162 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • BinaryRef toDebugS (ArrayRef Subsections, const codeview::StringsAndChecksums & SC, BumpPtrAllocator & Allocator)

    Defined at line 162 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • basic_string toStringAPFloat (uint64_t D, int E, unsigned int Precision)

    Defined at line 162 of file llvm/lib/Support/ScaledNumber.cpp

  • Expected IsBuiltFromSwiftInterface (StringRef data)

    Defined at line 162 of file llvm/tools/dsymutil/SwiftModule.cpp

  • basic_string formatSymbol (const Dumper::Context & Ctx, const coff_section * Section, uint64_t Offset, uint32_t Displacement, bool IsRangeEnd)

    Defined at line 162 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • int64_t readVarint64 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 163 of file llvm/lib/Object/WasmObjectFile.cpp

  • void layout (BlobAllocator & File, MemoryListStream::entry_type & Range)

    Defined at line 163 of file llvm/lib/ObjectYAML/MinidumpEmitter.cpp

  • bool isLoadConditional (LoadInst * Load, Loop * L)

    Return true if the load is not executed on all paths in the loop.

    Defined at line 163 of file llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp

  • BinaryOperator * isReassociableOp (Value * V, unsigned int Opcode)

    Return true if V is an instruction of the specified opcode and if it

    only has one use.

    Defined at line 163 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • template <IR IRTy>
    void RAUW (benchmark::State & State)

    Defined at line 163 of file llvm/benchmarks/SandboxIRBench.cpp

  • template <typename SymbolT>
    void dumpSymbolCategory (LinePrinter & Printer, const PDBSymbolExe & Exe, TypeDumper & TD, StringRef Label)

    Defined at line 163 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • bool InsertRootInitializers (Function & F, ArrayRef<AllocaInst *> Roots)

    Defined at line 163 of file llvm/lib/CodeGen/GCRootLowering.cpp

  • void emitVersion (raw_ostream & OS)

    Defined at line 164 of file llvm/lib/Remarks/YAMLRemarkSerializer.cpp

  • bool shouldSkip (SkipType skipType)

    Defined at line 164 of file llvm/tools/llvm-mca/llvm-mca.cpp

  • void dumpFileToSectionIDMap (const FileToSectionIDMap & FileToSecIDMap)

    Defined at line 164 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • void LLVMTargetMachineOptionsSetRelocMode (LLVMTargetMachineOptionsRef Options,  Reloc)

    Defined at line 164 of file llvm/lib/Target/TargetMachineC.cpp

  • vector computeLibsForComponents (ArrayRef Components, bool IncludeNonInstalled, bool GetComponentNames, const std::function<std::string (const StringRef &)> * GetComponentLibraryPath, std::vector<std::string> * Missing, const std::string & DirSep)

    Compute the list of required libraries for a given list of

    components, in an order suitable for passing to a linker (that is, libraries

    appear prior to their dependencies).

    Parameters

    Components - The names of the components to find libraries for.
    IncludeNonInstalled - Whether non-installed components should be reported.
    GetComponentNames - True if one would prefer the component names.

    Defined at line 164 of file llvm/tools/llvm-config/llvm-config.cpp

  • bool isSignificantBitCheckWellFormed (const RecurrenceInfo & ConditionalRecurrence, const RecurrenceInfo & SimpleRecurrence, bool ByteOrderSwapped)

    Check the well-formedness of the (most|least) significant bit check given

    depending on

    We check that ConditionalRecurrence.Step is a

    Select(Cmp()) where the compare is `>= 0` in the big-endian case, and `== 0`

    in the little-endian case (or the inverse, in which case the branches of the

    compare are swapped). We check that the LHS is (ConditionalRecurrence.Phi

    [xor SimpleRecurrence.Phi]) in the big-endian case, and additionally check

    for an AND with one in the little-endian case. We then check AllowedByR

    against CheckAllowedByR, which is [0, smin) in the big-endian case, and is

    [0, 1) in the little-endian case. CheckAllowedByR checks for

    significant-bit-clear, and we match the corresponding arms of the select

    against bit-shift and bit-shift-and-xor-gen-poly.

    Defined at line 164 of file llvm/lib/Analysis/HashRecognize.cpp

  • bool tailMergeBlocksWithSimilarFunctionTerminators (Function & F, DomTreeUpdater * DTU)

    Defined at line 164 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  • void initializeMachineCSELegacyPassOnce (PassRegistry & Registry)

    Defined at line 165 of file llvm/lib/CodeGen/MachineCSE.cpp

  • void ** GetBucketFor (unsigned int Hash, void ** Buckets, unsigned int NumBuckets)

    GetBucketFor - Hash the specified node ID and return the hash bucket for

    the specified ID.

    Defined at line 165 of file llvm/lib/Support/FoldingSet.cpp

  • Value * appendString (IRBuilder<> & Builder, Value * Desc, Value * Arg, bool IsLast)

    Defined at line 165 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • void registerPartials (const Value * Partials, Template & T)

    Defined at line 165 of file llvm/utils/llvm-test-mustache-spec/llvm-test-mustache-spec.cpp

  • bool error (error_code EC, Twine Path)

    Defined at line 165 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • uint32_t handleStaticDataMember (ArrayRef Data, uint32_t Offset, SmallVectorImpl<TiReference> & Refs)

    Defined at line 165 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • void addConditions (CallBase & CB, const ConditionsTy & Conditions)

    Defined at line 165 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • void moveHeaderPhiOperandsToForeBlocks (BasicBlock * Header, BasicBlock * Latch, ilist_iterator_w_bits InsertLoc, BasicBlockSet & AftBlocks)

    Move the phi operands of Header from Latch out of AftBlocks to InsertLoc.

    Defined at line 165 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • bool isRegOtherThanSPAndFP (const MachineOperand & Op, const MachineInstr & MI, const TargetRegisterInfo * TRI)

    If

    is a stack or frame register return true, otherwise return false.

    This is used to avoid basing the debug entry values on the registers, since

    we do not support it at the moment.

    Defined at line 165 of file llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp

  • Expected<COFF::MachineTypes> getCOFFFileMachine (MemoryBufferRef MB)

    Defined at line 165 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • basic_string createJSONText (size_t MemoryMB, unsigned int ValueSize)

    Defined at line 165 of file llvm/utils/yaml-bench/YAMLBench.cpp

  • void checkSectionData (ObjectFile & File, StringRef SectionName, StringRef SectionData)

    Check that specified

    has a section

    and its data

    matches

    Defined at line 165 of file llvm/unittests/ObjCopy/ObjCopyTest.cpp

  • void CrashHandler (void * )

    This callback is run if a fatal signal is delivered to the process, it

    prints the pretty stack trace.

    Defined at line 165 of file llvm/lib/Support/PrettyStackTrace.cpp

  • SDValue getCopyFromParts (SelectionDAG & DAG, const SDLoc & DL, const SDValue * Parts, unsigned int NumParts, MVT PartVT, EVT ValueVT, const Value * V, SDValue InChain, std::optional<CallingConv::ID> CC, std::optional<ISD::NodeType> AssertOp)

    getCopyFromParts - Create a value that contains the specified legal parts

    combined into the value they represent. If the parts combine to a type

    larger than ValueVT then AssertOp can be used to specify whether the extra

    bits are known to be zero (ISD::AssertZext) or sign extended from ValueVT

    (ISD::AssertSext).

    Defined at line 165 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • void initializeScopedNoAliasAAWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 166 of file llvm/lib/Analysis/ScopedNoAliasAA.cpp

  • void initializeMachineModuleInfoWrapperPassPassOnce (PassRegistry & Registry)

    Handle the Pass registration stuff necessary to use DataLayout's.

    Defined at line 166 of file llvm/lib/CodeGen/MachineModuleInfo.cpp

  • unsigned int getPOPOpcode (const X86Subtarget & ST)

    Defined at line 166 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • void initializePlaceBackedgeSafepointsLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 166 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • void failIfError (error_code EC, Twine Context)

    Defined at line 166 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • const char * getRadixFmt ()

    Return the printing format for the Radix.

    Defined at line 166 of file llvm/tools/llvm-size/llvm-size.cpp

  • size_t findLastNonVersionCharacter (StringRef Ext)

    This function finds the last character that doesn't belong to a version

    (e.g. zba1p0 is extension 'zba' of version '1p0'). So the function will

    consume [0-9]*p[0-9]* starting from the backward. An extension name will not

    end with a digit or the letter 'p', so this function will parse correctly.

    NOTE: This function is NOT able to take empty strings or strings that only

    have version numbers and no extension name. It assumes the extension name

    will be at least more than one character.

    Defined at line 166 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • void getSortedConstantKeys (std::vector<Value *> & SortedKeys, DenseMap<Value *, BasicBlock *> & Map)

    A function to sort the keys of

    which must be a mapping of constant

    values to basic blocks and return it in

    Parameters

    SortedKeys - The vector the keys will be return in and sorted.
    Map - The DenseMap containing keys to sort.

    Defined at line 166 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • int parseBitcodeFileImpl (MemoryBufferRef Buffer, LLVMContext & Context, bool ShouldBeLazy)

    Defined at line 166 of file llvm/lib/LTO/LTOModule.cpp

  • void removeFromUsedList (Module & M, StringRef Name, function_ref ShouldRemove)

    Defined at line 166 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp

  • void collectTransitivePredecessors (const Loop * CurLoop, const BasicBlock * BB, SmallPtrSetImpl<const BasicBlock *> & Predecessors)

    Collect all blocks from

    which lie on all possible paths from

    the header of

    (inclusive) to BB (exclusive) into the set

    If

    is the header,

    will be empty.

    Note: It's possible that we encounter Irreducible control flow, due to

    which, we may find that a few predecessors of

    are not a part of the

    We only return Predecessors that are a part of

    Defined at line 166 of file llvm/lib/Analysis/MustExecute.cpp

  • void convertToRelLookupTable (LookupTableInfo & Info, GlobalVariable & LookupTable)

    Defined at line 166 of file llvm/lib/Transforms/Utils/RelLookupTableConverter.cpp

  • void PrintOperation (unsigned int ValNo, unsigned short[] Vals)

    Defined at line 166 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • bool populateDependencyMatrix (CharMatrix & DepMatrix, unsigned int Level, Loop * L, DependenceInfo * DI, ScalarEvolution * SE, OptimizationRemarkEmitter * ORE)

    Defined at line 166 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • bool shouldUpgradeX86Intrinsic (Function * F, StringRef Name)

    Defined at line 166 of file llvm/lib/IR/AutoUpgrade.cpp

  • unsigned int getOnDiskSectionId (unsigned int Index)

    Convert a UnitIndexEntry::Contributions index to the corresponding on-disk

    value of the section identifier.

    Defined at line 167 of file llvm/lib/DWP/DWP.cpp

  • uint64_t readVaruint64 (WasmObjectFile::ReadContext & Ctx)

    Defined at line 167 of file llvm/lib/Object/WasmObjectFile.cpp

  • bool IsInSameBasicBlock (const Use & U, const BasicBlock * BB)

    Defined at line 167 of file llvm/lib/CodeGen/CallBrPrepare.cpp

  • void layout (BlobAllocator & File, ModuleListStream::entry_type & M)

    Defined at line 167 of file llvm/lib/ObjectYAML/MinidumpEmitter.cpp

  • error_code cleanUpTempFilesImpl (ArrayRef FileName, unsigned int N)

    Defined at line 167 of file llvm/lib/IR/PrintPasses.cpp

  • bool usesTriple (StringRef Buf)

    Attempt to determine if a Text stub uses target triple.

    Defined at line 167 of file llvm/lib/InterfaceStub/IFSHandler.cpp

  • LoadCommand buildRPathLoadCommand (StringRef Path)

    Defined at line 167 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • std::optional<UnitEntryPairTy> getTypeDeduplicationCandidate (UnitEntryPairTy UnitEntryPair)

    Examine DIE and return type deduplication candidate: some DIEs could not be

    deduplicated, namespace may refer to another namespace.

    Defined at line 167 of file llvm/lib/DWARFLinker/Parallel/SyntheticTypeNameBuilder.cpp

  • vector constructPerfectHashTable (ArrayRef Keywords, ArrayRef Hashes, ArrayRef TableValues, int Size, int Collisions, StringToOffsetTable & OffsetTable)

    Defined at line 167 of file llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp

  • size_t left_subtree_len (size_t input_len)

    Given some input larger than one chunk, return the number of bytes that

    should go in the left subtree. This is the largest power-of-2 number of

    chunks that leaves at least 1 byte for the right subtree.

    Defined at line 168 of file llvm/lib/Support/BLAKE3/blake3.c

  • void initializeFixIrreduciblePassOnce (PassRegistry & Registry)

    Defined at line 168 of file llvm/lib/Transforms/Utils/FixIrreducible.cpp

  • void handleLLVMFatalError (void * , const char * Message, bool )

    Defined at line 168 of file llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp

  • template <typename T>
    void printWithSpacePadding (raw_ostream & OS, T Data, unsigned int Size)

    Defined at line 168 of file llvm/lib/Object/ArchiveWriter.cpp

  • LLVMSymbolIteratorRef LLVMObjectFileCopySymbolIterator (LLVMBinaryRef BR)

    Retrieve a copy of the symbol iterator for this object file.

    If there are no symbols, the result is NULL.

    The returned iterator is merely a shallow copy. Nevertheless, it is

    the responsibility of the caller to free it with

    Defined at line 168 of file llvm/lib/Object/Object.cpp

  • Error decodeError (const llvm::json::Object & O)

    Decode the given JSON object into an error.

    Defined at line 168 of file llvm/lib/Support/LSP/Transport.cpp

  • bool setDoesNotCapture (Function & F, unsigned int ArgNo)

    Defined at line 168 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool stackFrameIncludesInlinedCallStack (ArrayRef<Frame> ProfileCallStack, ArrayRef InlinedCallStack)

    Return true if InlinedCallStack, computed from a call instruction's debug

    info, is a prefix of ProfileCallStack, a list of Frames from profile data

    (either the allocation data or a callsite).

    Defined at line 168 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • Model getEffectiveX86CodeModel (const Triple & TT, std::optional<CodeModel::Model> CM, bool JIT)

    Defined at line 168 of file llvm/lib/Target/X86/X86TargetMachine.cpp

  • basic_string explainOperator (const Record * Operator)

    Defined at line 168 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • Cursor lexName (Cursor C, MIToken & Token, TokenKind Type, unsigned int PrefixLength, function_ref ErrorCallback)

    Defined at line 168 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void createRetBitCast (CallBase & CB, Type * RetTy, CastInst ** RetBitCast)

    Cast a call or invoke instruction to the given type.

    When promoting a call site, the return type of the call site might not match

    that of the callee. If this is the case, we have to cast the returned value

    to the correct type. The location of the cast depends on if we have a call

    or invoke instruction.

    For example, if the call instruction below requires a bitcast after

    promotion:

    orig_bb:

    %t0 = call i32

    ()

    ...

    The bitcast is placed after the call instruction:

    orig_bb:

    ; Uses of the original return value are replaced by uses of the bitcast.

    %t0 = call i32

    ()

    %t1 = bitcast i32 %t0 to ...

    ...

    A similar transformation is performed for invoke instructions. However,

    since invokes are terminating, a new block is created for the bitcast. For

    example, if the invoke instruction below requires a bitcast after promotion:

    orig_bb:

    %t0 = invoke i32

    () to label %normal_dst unwind label %unwind_dst

    The edge between the original block and the invoke's normal destination is

    split, and the bitcast is placed there:

    orig_bb:

    %t0 = invoke i32

    () to label %split_bb unwind label %unwind_dst

    split_bb:

    ; Uses of the original return value are replaced by uses of the bitcast.

    %t1 = bitcast i32 %t0 to ...

    br label %normal_dst

    Defined at line 168 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • unsigned int getScatteredRelocationLength (const MachO::any_relocation_info & RE)

    Defined at line 169 of file llvm/lib/Object/MachOObjectFile.cpp

  • void printSummaryItem (int64_t TotalA, int64_t TotalB, StringRef Metric, llvm::raw_ostream & OS)

    Print an item in the summary section.

    - Total count of the metric in file A.

    - Total count of the metric in file B.

    - Name of the metric we want to print (e.g. instruction

    count).

    - The output stream.

    Defined at line 169 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • void emitLatency (LLVMDisasmContext * DC, const MCInst & Inst)

    Emits latency information in DC->CommentStream for

    based

    on the information available in

    Defined at line 169 of file llvm/lib/MC/MCDisassembler/Disassembler.cpp

  • const omp::GV & getGridValue (const Triple & T, Function * Kernel)

    Defined at line 169 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • SectionFlag parseSectionRenameFlag (StringRef SectionName)

    Defined at line 169 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • basic_string pointerKind (PointerKind Kind)

    Defined at line 169 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • void llvm_blake3_compress_in_place (uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags)

    Defined at line 169 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c

  • unsigned int LLVMGetLastEnumAttributeKind ()

    Defined at line 164 of file llvm/lib/IR/Core.cpp

  • LLVMAttributeRef LLVMCreateEnumAttribute (LLVMContextRef C, unsigned int KindID, uint64_t Val)

    Create an enum attribute.

    Defined at line 168 of file llvm/lib/IR/Core.cpp

  • void emitRISCVProcs (const RecordKeeper & RK, raw_ostream & OS)

    Defined at line 169 of file llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  • bool isDigit (const char C)

    Defined at line 170 of file llvm/lib/Demangle/RustDemangle.cpp

  • bool isTraversalComponent (StringRef Component)

    Defined at line 170 of file llvm/lib/Support/VirtualFileSystem.cpp

  • unsigned int getPUSH2Opcode (const X86Subtarget & ST)

    Defined at line 170 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • void stripTBAA (Module * M)

    Strip all the TBAA attachment for the module.

    Defined at line 170 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void computeHashString (StringRef Name, SmallString<32> & StringifiedHash)

    Computes a string representation of a hash of the specified name, suitable

    for use when emitting CodeView type names.

    Defined at line 170 of file llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp

  • pair findRun (uint64_t Offset, ArrayRef Runs)

    Defined at line 170 of file llvm/lib/DebugInfo/PDB/Native/LinePrinter.cpp

  • DiffOutput getSingleAttrDiff (iterator_range SymRange, basic_string Name, InterfaceInputOrder Order)

    Defined at line 170 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • void runWithDomTree (Module & M, StringRef FuncName, function_ref Test)

    Build the dominator tree for the function and run the Test.

    Defined at line 170 of file llvm/unittests/Transforms/Utils/LocalTest.cpp

  • CoroSaveInst * createCoroSave (CoroBeginInst * CoroBegin, CoroSuspendInst * SuspendInst)

    Defined at line 170 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • MCSymbol * getMCSymbolForMBB (AsmPrinter * Asm, const MachineBasicBlock * MBB)

    Retrieve the MCSymbol for a GlobalValue or MachineBasicBlock.

    Defined at line 170 of file llvm/lib/CodeGen/AsmPrinter/WinException.cpp

  • PHINode * findPHIToPartitionLoops (Loop * L, DominatorTree * DT, AssumptionCache * AC)

    The first part of loop-nestification is to find a PHI node that tells

    us how to partition the loops.

    Defined at line 170 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • uint64_t getLocCookie (const SMDiagnostic & SMD, const SourceMgr & SrcMgr, int & LocInfos)

    Defined at line 170 of file llvm/lib/CodeGen/MachineModuleInfo.cpp

  • error_code createUniqueEntity (const Twine & Model, int & ResultFD, SmallVectorImpl<char> & ResultPath, bool MakeAbsolute, FSEntity Type, OpenFlags Flags, unsigned int Mode)

    Defined at line 170 of file llvm/lib/Support/Path.cpp

  • FeatureBitset getFeatures (MCSubtargetInfo & STI, StringRef CPU, StringRef TuneCPU, StringRef FS, ArrayRef ProcNames, ArrayRef ProcDesc, ArrayRef ProcFeatures)

    Defined at line 170 of file llvm/lib/MC/MCSubtargetInfo.cpp

  • uint8_t readOpcode (WasmObjectFile::ReadContext & Ctx)

    Defined at line 171 of file llvm/lib/Object/WasmObjectFile.cpp

  • StringRef getSubsection (StringRef Section, const DWARFUnitIndex::Entry & Entry, DWARFSectionKind Kind)

    Defined at line 171 of file llvm/lib/DWP/DWP.cpp

  • void emitExternalFile (raw_ostream & OS, StringRef Filename)

    Defined at line 171 of file llvm/lib/Remarks/YAMLRemarkSerializer.cpp

  • tuple interpolateHSV (const std::tuple<double, double, double> & C0, const std::tuple<double, double, double> & C1, double T)

    Interpolates between two HSV Colors both represented as a tuple of doubles

    Returns an HSV Color represented as a tuple of doubles

    Defined at line 171 of file llvm/tools/llvm-xray/xray-color-helper.cpp

  • StringRef getSamplerFeedbackTypeName (SamplerFeedbackType SFT)

    Defined at line 171 of file llvm/lib/Analysis/DXILResource.cpp

  • BinaryOperator * isReassociableOp (Value * V, unsigned int Opcode1, unsigned int Opcode2)

    Defined at line 171 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • Value * processArg (IRBuilder<> & Builder, Value * Desc, Value * Arg, bool SpecIsCString, bool IsLast)

    Defined at line 171 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • basic_string formatThunkOrdinal (ThunkOrdinal Ordinal)

    Defined at line 171 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • bool splitGlobals (Module & M)

    Defined at line 171 of file llvm/lib/Transforms/IPO/GlobalSplit.cpp

  • bool startsWithLocalScopePattern (basic_string_view S)

    Defined at line 171 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • bool replaceCoroEndAsync (AnyCoroEndInst * End)

    Replace an llvm.coro.end.async.

    Will inline the must tail call function call if there is one.

    Defined at line 171 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool eliminateCondBranches_v2 (Function & F, DominatorTree & DT)

    Eliminate branches with constant conditionals. This is the second

    version, which *does* preserve the dominator tree.

    Defined at line 171 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • bool matchSelectWithOptionalNotCond (Value * V, Value *& Cond, Value *& A, Value *& B, SelectPatternFlavor & Flavor)

    Match a 'select' including an optional 'not's of the condition.

    Defined at line 171 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • std::pair<MemoryEffects, MemoryEffects> checkFunctionMemoryAccess (Function & F, bool ThisBody, AAResults & AAR, const SCCNodeSet & SCCNodes)

    Returns the memory access attribute for function F using AAR for AA results,

    where SCCNodes is the current SCC.

    If ThisBody is true, this function may examine the function body and will

    return a result pertaining to this copy of the function. If it is false, the

    result will be based only on AA results for the function declaration; it

    will be assumed that some other (perhaps less optimized) version of the

    function may be selected at link time.

    The return value is split into two parts: Memory effects that always apply,

    and additional memory effects that apply if any of the functions in the SCC

    can access argmem.

    Defined at line 171 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void initializeDomPrinterWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 172 of file llvm/lib/Analysis/DomPrinter.cpp

  • bool isOffsetLegal (unsigned int L)

    Returns true if line offset

    is legal (only has 16 bits).

    Defined at line 172 of file llvm/lib/ProfileData/SampleProfReader.cpp

  • LibLTOCodeGenerator * unwrap (lto_code_gen_t P)

    Defined at line 172 of file llvm/tools/lto/lto.cpp

  • lto_code_gen_t wrap (const LibLTOCodeGenerator * P)

    Defined at line 172 of file llvm/tools/lto/lto.cpp

  • bool isHexDigit (const char C)

    Defined at line 172 of file llvm/lib/Demangle/RustDemangle.cpp

  • Value readJsonFromFile (StringRef & InputFile)

    Defined at line 172 of file llvm/utils/llvm-test-mustache-spec/llvm-test-mustache-spec.cpp

  • void load_block_words (const uint8_t[64] block, uint32_t[16] block_words)

    Defined at line 172 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • void ** AllocateBuckets (unsigned int NumBuckets)

    AllocateBuckets - Allocated initialized bucket memory.

    Defined at line 172 of file llvm/lib/Support/FoldingSet.cpp

  • bool callHasRegMask (MachineInstr & MI)

    Check if given call instruction has a RegMask operand.

    Defined at line 172 of file llvm/lib/Target/X86/X86VZeroUpper.cpp

  • Expected getSectionId (const FileToSectionIDMap & FileToSecIDMap, StringRef FileName, StringRef SectionName)

    Defined at line 172 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • basic_string escapeString (StringRef Label)

    Labels in a DOT graph must be legal XML strings so it's necessary to escape

    certain characters.

    Defined at line 172 of file llvm/tools/llvm-xray/xray-graph.cpp

  • ThinLTOCodeGenerator * unwrap (thinlto_code_gen_t P)

    Defined at line 173 of file llvm/tools/lto/lto.cpp

  • thinlto_code_gen_t wrap (const ThinLTOCodeGenerator * P)

    Defined at line 173 of file llvm/tools/lto/lto.cpp

  • unsigned int getPOP2Opcode (const X86Subtarget & ST)

    Defined at line 173 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • LLVMBool LLVMInitializeNativeDisassembler ()

    LLVMInitializeNativeTargetDisassembler - The main program should call this

    function to initialize the disassembler for the native target corresponding

    to the host.

    Defined at line 173 of file llvm/include/llvm-c/Target.h

  • LLVMBool LLVMInitializeNativeDisassembler ()

    LLVMInitializeNativeTargetDisassembler - The main program should call this

    function to initialize the disassembler for the native target corresponding

    to the host.

    Defined at line 173 of file llvm/include/llvm-c/Target.h

  • void PrintDebugDomInfo (const DominatorTree & DT, const Use & U, const BasicBlock * BB, bool IsDefaultDest)

    Defined at line 173 of file llvm/lib/CodeGen/CallBrPrepare.cpp

  • bool isDereferenceableForAllocaSize (const Value * V, const AllocaInst * AI, const DataLayout & DL)

    Returns true if V is dereferenceable for size of alloca.

    Defined at line 173 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • unique_ptr createWriter (const CommonConfig & Config, Object & Obj, raw_ostream & Out, ElfType OutputElfType)

    Defined at line 173 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • pair ConvertUTF8ToUnicodeScalarsLenient (StringRef S)

    Defined at line 173 of file llvm/unittests/Support/ConvertUTFTest.cpp

  • bool handleBuffer (StringRef Filename, MemoryBufferRef Buffer, OutlinedHashTreeRecord & GlobalOutlineRecord, StableFunctionMapRecord & GlobalFunctionMapRecord)

    Defined at line 173 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • bool IsSafeComputationToRemove (Value * V, function_ref<TargetLibraryInfo &(Function &)> GetTLI)

    Given a value that is stored to a global but never read, determine whether

    it's safe to remove the store and the chain of computation that feeds the

    store.

    Defined at line 173 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • optional dumpPubSection (const DWARFContext & DCtx, const DWARFSection & Section, bool IsGNUStyle)

    Defined at line 173 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • bool ProcessBlock (BasicBlock & BB, DominatorTree & DT, LoopInfo & LI, AAResults & AA)

    Defined at line 173 of file llvm/lib/Transforms/Scalar/Sink.cpp

  • void __clear_cache (void * , void * )

    Defined at line of file

  • StringRef getHostCPUNameForARMFromComponents (StringRef Implementer, StringRef Hardware, StringRef Part, ArrayRef Parts, function_ref GetVariant)

    Defined at line 173 of file llvm/lib/TargetParser/Host.cpp

  • bool isUnDroppableUser (const User * U)

    Defined at line 174 of file llvm/lib/IR/Value.cpp

  • LTOModule * unwrap (lto_module_t P)

    Defined at line 174 of file llvm/tools/lto/lto.cpp

  • lto_module_t wrap (const LTOModule * P)

    Defined at line 174 of file llvm/tools/lto/lto.cpp

  • void layout (BlobAllocator & File, ThreadListStream::entry_type & T)

    Defined at line 174 of file llvm/lib/ObjectYAML/MinidumpEmitter.cpp

  • void LLVMPassBuilderOptionsSetCallGraphProfile (LLVMPassBuilderOptionsRef Options, LLVMBool CallGraphProfile)

    Defined at line 174 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • unsigned int getPlainRelocationType (const MachOObjectFile & O, const MachO::any_relocation_info & RE)

    Defined at line 174 of file llvm/lib/Object/MachOObjectFile.cpp

  •  llvm_orc_deregisterEHFrameSectionAllocAction (const char * ArgData, size_t ArgSize)

    Defined at line 174 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp

  • bool pathHasTraversal (StringRef Path)

    Defined at line 174 of file llvm/lib/Support/VirtualFileSystem.cpp

  • basic_string getRuntimeCallName (const BoundsCheckingPass::Options::Runtime & Opts)

    Defined at line 174 of file llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp

  • xmlNsPtr getNamespaceWithPrefix (const unsigned char * Prefix, xmlNodePtr Node)

    Return the corresponding namespace definition for the prefix, defined on the

    given Node. Returns nullptr if there is no such definition.

    Defined at line 174 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • const char * getProgramName (Name program)

    Defined at line 174 of file llvm/lib/Support/GraphWriter.cpp

  • Value * computeVectorAddr (Value * BasePtr, Value * VecIdx, Value * Stride, unsigned int NumElements, Type * EltType, IRBuilder<> & Builder)

    To compute the column addresses for a 2x3 sub-matrix at row 1 and column 1,

    we need a pointer to the first element of the submatrix as base pointer.

    Then we can use computeVectorAddr to compute the addresses for the columns

    of the sub-matrix.

    Column 0: computeVectorAddr(Base, 0 (column), 4 (stride), 2 (num rows), ..)

    -> just returns Base

    Column 1: computeVectorAddr(Base, 1 (column), 4 (stride), 2 (num rows), ..)

    -> returns Base + (1 * 4)

    Column 2: computeVectorAddr(Base, 2 (column), 4 (stride), 2 (num rows), ..)

    -> returns Base + (2 * 4)

    The graphic below illustrates the number of elements in a column (marked

    with |) and the number of skipped elements (marked with }).

    v_0_0 v_0_1 {v_0_2 {v_0_3

    Base Col 1 Col 2

    | | |

    v_1_0 |v_1_1 |v_1_2 |v_1_3

    v_2_0 |v_2_1 |v_2_2 |v_2_3

    v_3_0 {v_3_1 {v_3_2 v_3_3

    Defined at line 174 of file llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

  • bool CheckMachineFunction (const MachineFunction & MF, StringRef CheckStr)

    Defined at line 174 of file llvm/unittests/CodeGen/GlobalISel/GISelMITest.h

  • void eliminateAliases (GlobalValue * GV)

    Defined at line 174 of file llvm/tools/bugpoint/ExtractFunction.cpp

  • StringRef getTypeConstraintKindName (KindTy Kind)

    Defined at line 174 of file llvm/utils/TableGen/SDNodeInfoEmitter.cpp

  • Error verifyOptions (const DsymutilOptions & Options)

    Verify that the given combination of options makes sense.

    Defined at line 174 of file llvm/tools/dsymutil/dsymutil.cpp

  • void printMF (raw_ostream & OS, MFGetterFnT Fn, const MachineFunction & MF)

    Defined at line 174 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • template <typename T>
    bool isStrictSubset (ArrayRef<T> C0, ArrayRef<T> C1)

    Return true if

    is a strict subset of

    Note that both arrays are

    expected to be sorted.

    Defined at line 175 of file llvm/lib/Frontend/OpenMP/OMPContext.cpp

  • void verifyLoadedModule (Module & TheModule)

    Verify the module and strip broken debug info.

    Defined at line 175 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • uint32_t handleVirtualBaseClass (ArrayRef Data, uint32_t Offset, bool IsIndirect, SmallVectorImpl<TiReference> & Refs)

    Defined at line 175 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • ValType parseValType (WasmObjectFile::ReadContext & Ctx, uint32_t Code)

    Defined at line 175 of file llvm/lib/Object/WasmObjectFile.cpp

  • void removeIdenticalIndexPair (StableFunctionMap::StableFunctionEntries & SFS)

    Defined at line 175 of file llvm/lib/CGData/StableFunctionMap.cpp

  • std::pair<unsigned int, bool> getX86SSEConditionCode (Predicate Predicate)

    Defined at line 175 of file llvm/lib/Target/X86/X86FastISel.cpp

  • int LLVMFuzzerInitialize (int * argc, char *** argv)

    Defined at line 175 of file llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp

  • bool getSystemRegistryString (const char * keyPath, const char * valueName, std::string & value, std::string * phValue)

    Read registry string.

    This also supports a means to look for high-versioned keys by use

    of a $VERSION placeholder in the key path.

    $VERSION in the key path is a placeholder for the version number,

    causing the highest value path to be searched for and used.

    I.e. "SOFTWARE\\Microsoft\\VisualStudio\\$VERSION".

    There can be additional characters in the component. Only the numeric

    characters are compared. This function only searches HKLM.

    Defined at line 175 of file llvm/lib/WindowsDriver/MSVCPaths.cpp

  • void initializeDomOnlyPrinterWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 176 of file llvm/lib/Analysis/DomPrinter.cpp

  • int64_t unrotateSign (uint64_t U)

    Defined at line 176 of file llvm/lib/Bitcode/Reader/MetadataLoader.cpp

  • bool isLower (const char C)

    Defined at line 176 of file llvm/lib/Demangle/RustDemangle.cpp

  • void initializeExpandReductionsPassOnce (PassRegistry & Registry)

    Defined at line 176 of file llvm/lib/CodeGen/ExpandReductions.cpp

  • bool isDarwin (Kind Kind)

    Defined at line 176 of file llvm/lib/Object/ArchiveWriter.cpp

  • LLVMBool LLVMObjectFileIsSymbolIteratorAtEnd (LLVMBinaryRef BR, LLVMSymbolIteratorRef SI)

    Returns whether the given symbol iterator is at the end.

    Defined at line 176 of file llvm/lib/Object/Object.cpp

  • template <typename Container>
    void eraseDeadBBsAndChildren (const Container & BBs)

    Erase the specified BBs if the BB does not have any remaining predecessors,

    and also all its dead children.

    Defined at line 176 of file llvm/lib/CodeGen/WasmEHPrepare.cpp

  • void EmitSymbolRefWithOfs (MCStreamer & streamer, const MCSymbol * Base, int64_t Offset)

    Defined at line 176 of file llvm/lib/MC/MCWin64EH.cpp

  • void failIfError (Error E, Twine Context)

    Defined at line 176 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • unsigned int conjugateICmpMask (unsigned int Mask)

    Convert an analysis of a masked ICmp into its equivalent if all boolean

    operations had the opposite sense. Since each "NotXXX" flag (recording !=)

    is adjacent to the corresponding normal flag (recording ==), this just

    involves swapping those bits over.

    Defined at line 176 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool valueDominatesPHI (Value * V, PHINode * P, const DominatorTree * DT)

    Does the given value dominate the specified phi node?

    Defined at line 176 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Error useCollectRemark (StringRef Buffer, Counter & Counter, Filters & Filter)

    Defined at line 176 of file llvm/tools/llvm-remarkutil/RemarkCounter.cpp

  • void error (Error E, StringRef FileName, const Archive::Child & C, StringRef ArchitectureName)

    This version of error() prints the archive name and member name, for example:

    "libx.a(foo.o)" after the ToolName before the error message. It sets

    HadError but returns allowing the code to move on to other archive members.

    Defined at line 176 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • Value * getValueOnFirstIteration (Value * V, DenseMap<Value *, Value *> & FirstIterValue, const SimplifyQuery & SQ)

    Defined at line 176 of file llvm/lib/Transforms/Scalar/LoopDeletion.cpp

  • std::optional<AllocFnsTy> getAllocationDataForFunction (const Function * Callee, AllocType AllocTy, const TargetLibraryInfo * TLI)

    Returns the allocation data for the given value if it's a call to a known

    allocation function.

    Defined at line 176 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • bool setDoesNotAlias (Function & F, unsigned int ArgNo)

    Defined at line 177 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool optionMatches (const StringTable & StrTable, ArrayRef PrefixesTable, const OptTable::Info & In, StringRef Option)

    Returns true if one of the Prefixes + In.Names matches Option

    Defined at line 177 of file llvm/lib/Option/OptTable.cpp

  • void lto_add_attrs (lto_code_gen_t cg)

    Convert the subtarget features into a string to pass to LTOCodeGenerator.

    Defined at line 177 of file llvm/tools/lto/lto.cpp

  • bool isEAXLiveIn (MachineBasicBlock & MBB)

    Defined at line 177 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • void cloneJumpTableInfo (MachineFunction & DstMF, const MachineJumpTableInfo & SrcJTI, const int & Src2DstMBB)

    Defined at line 177 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • Constant * appendIndirectedGlobal (const GlobalVariable * IndirectionTable, SmallVector<Constant *> & SymbolIndirections, GlobalVariable * ToIndirect)

    Defined at line 177 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • basic_string computeMipsDataLayout (const Triple & TT, StringRef ABIName)

    Defined at line 177 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • void visitRegisterBankClasses (const CodeGenRegBank & RegisterClassHierarchy, const CodeGenRegisterClass * RC, const Twine & Kind, std::function<void (const CodeGenRegisterClass *, StringRef)> VisitFn, int & VisitedRCs)

    Visit each register class belonging to the given register bank.

    A class belongs to the bank iff any of these apply:

    * It is explicitly specified

    * It is a subclass of a class that is a member.

    * It is a class containing subregisters of the registers of a class that

    is a member. This is known as a subreg-class.

    This function must be called for each explicitly specified register class.

    Parameters

    RC The register class to search.
    Kind A debug string containing the path the visitor took to reach RC.
    VisitFn The action to take for each class visited. It may be called multiple times for a given class if there are multiple paths to the class.

    Defined at line 177 of file llvm/utils/TableGen/RegisterBankEmitter.cpp

  • bool canSplitLoopBound (const Loop & L, const DominatorTree & DT, ScalarEvolution & SE, ConditionInfo & Cond)

    Defined at line 177 of file llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp

  • void predictValueUseListOrderImpl (const Value * V, const Function * F, unsigned int ID, const OrderMap & OM, UseListOrderStack & Stack)

    Defined at line 177 of file llvm/lib/Bitcode/Writer/ValueEnumerator.cpp

  • bool isUpper (const char C)

    Defined at line 178 of file llvm/lib/Demangle/RustDemangle.cpp

  • unsigned int getNumOpRegs (const MachineInstr & I, unsigned int OpIdx)

    Defined at line 178 of file llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp

  • SmallVector<BasicBlock *, 2> getTwoPredecessors (BasicBlock * BB)

    Defined at line 178 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • bool isTestXFail (StringRef FileName, StringRef TestName)

    Defined at line 178 of file llvm/utils/llvm-test-mustache-spec/llvm-test-mustache-spec.cpp

  • bool isRegUsedByPhiNodes (Register DefReg, FunctionLoweringInfo & FuncInfo)

    Defined at line 178 of file llvm/lib/CodeGen/SelectionDAG/FastISel.cpp

  • void BM_Mustache_DeepTraversal (benchmark::State & state)

    Tests the "hot render" cost of repeatedly traversing a deep and wide

    JSON object.

    Defined at line 178 of file llvm/benchmarks/Mustache.cpp

  • Error validateArchitectureName (StringRef ArchitectureName)

    Defined at line 178 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • void combineWeightsBySorting (WeightList & Weights)

    Defined at line 178 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • bool isAllocationWithHotColdVariant (const Function * Callee, const TargetLibraryInfo & TLI)

    Defined at line 178 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • bool CompressEVEXImpl (MachineInstr & MI, MachineBasicBlock & MBB, const X86Subtarget & ST)

    Defined at line 178 of file llvm/lib/Target/X86/X86CompressEVEX.cpp

  • void LLVMPassBuilderOptionsSetMergeFunctions (LLVMPassBuilderOptionsRef Options, LLVMBool MergeFunctions)

    Defined at line 179 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • bool isObjectSize (const Value * V, TypeSize Size, const DataLayout & DL, const TargetLibraryInfo & TLI, bool NullIsValidLoc)

    Returns true if we can prove that the object specified by V has size Size.

    Defined at line 179 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • void printVal (double Val, double Total, raw_ostream & OS)

    Defined at line 179 of file llvm/lib/Support/Timer.cpp

  • void store32 (void * dst, uint32_t w)

    Defined at line 179 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • void TestFunctionInfoDecodeError (endianness ByteOrder, StringRef Bytes, const uint64_t BaseAddr, basic_string ExpectedErrorMsg)

    Defined at line 179 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • bool considerForSize (ObjectFile * Obj, SectionRef Section)

    Remove unneeded ELF sections from calculation

    Defined at line 179 of file llvm/tools/llvm-size/llvm-size.cpp

  • Expected getArchiveMemberDecField (Twine FieldName, StringRef RawField, const Archive * Parent, const AbstractArchiveMemberHeader * MemHeader)

    Defined at line 179 of file llvm/lib/Object/Archive.cpp

  • basic_string generateRUOWIR (unsigned int NumOperands)

    Defined at line 179 of file llvm/benchmarks/SandboxIRBench.cpp

  • bool isCandidate (const MachineInstr * MI, Register & DefedReg, Register FrameReg)

    Return true if MI is a potential candidate for reuse/removal and if so

    also the register it defines in DefedReg. A candidate is a simple

    instruction that does not touch memory, has only one register definition

    and the only reg it may use is FrameReg. Typically this is an immediate

    load or a load-address instruction.

    Defined at line 179 of file llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp

  • Expected parseFilePathFromURI (StringRef OrigUri)

    Defined at line 179 of file llvm/lib/Support/LSP/Protocol.cpp

  • size_t compress_chunks_parallel (const uint8_t * input, size_t input_len, const uint32_t[8] key, uint64_t chunk_counter, uint8_t flags, uint8_t * out)

    Use SIMD parallelism to hash up to MAX_SIMD_DEGREE chunks at the same time

    on a single thread. Write out the chunk chaining values and return the

    number of chunks hashed. These chunks are never the root and never empty;

    those cases use a different codepath.

    Defined at line 179 of file llvm/lib/Support/BLAKE3/blake3.c

  • void reconnectChildLoops (LoopInfo & LI, Loop * ParentLoop, Loop * NewLoop, BasicBlock * OldHeader)

    When a new loop is created, existing children of the parent loop may now be

    fully inside the new loop. Reconnect these as children of the new loop.

    Defined at line 179 of file llvm/lib/Transforms/Utils/FixIrreducible.cpp

  • Expected decode (DataExtractor & Data, uint64_t & Offset, uint64_t BaseAddr)

    Decode an InlineInfo in Data at the specified offset.

    A local helper function to decode InlineInfo objects. This function is

    called recursively when parsing child InlineInfo objects.

    Parameters

    Data The data extractor to decode from.
    Offset The offset within to decode from.
    BaseAddr The base address to use when decoding address ranges.

    Defined at line 179 of file llvm/lib/DebugInfo/GSYM/InlineInfo.cpp

  • Error mapNameAndUniqueName (CodeViewRecordIO & IO, StringRef & Name, StringRef & UniqueName, bool HasUniqueName)

    Defined at line 179 of file llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp

  • bool haveNoCommonBitsSetSpecialCases (const Value * LHS, const Value * RHS, const SimplifyQuery & SQ)

    Defined at line 179 of file llvm/lib/Analysis/ValueTracking.cpp

  • Error processLoadCommands (const MachOConfig & MachOConfig, Object & Obj)

    Defined at line 179 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • void initializeX86SpeculativeExecutionSideEffectSuppressionPassOnce (PassRegistry & Registry)

    Defined at line 180 of file llvm/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp

  • void initializeAtomicExpandLegacyPassOnce (PassRegistry & Registry)

    Defined at line 180 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • void initializeMachineBlockFrequencyInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 180 of file llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp

  • bool shouldReplaceNonVoidReturnValue (const BasicBlock & BB, const Value * Replacement)

    Return true if it's worthwhile replacing the non-void return value of

    with

    Defined at line 180 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • void DumpCommandLine (int argc, char ** argv)

    Defined at line 180 of file llvm/utils/FileCheck/FileCheck.cpp

  • HotnessType getHotness (uint64_t ProfileCount, ProfileSummaryInfo * PSI)

    Defined at line 180 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • template <typename HasherT, llvm::endianness Endianness>
    void addHash (llvm::HashBuilder<HasherT, Endianness> & HBuilder, const CustomContainer & Value)

    Defined at line 180 of file llvm/unittests/Support/HashBuilderTest.cpp

  • template <typename EntryT>
    size_t layout (BlobAllocator & File, MinidumpYAML::detail::ListStream<EntryT> & S)

    Defined at line 180 of file llvm/lib/ObjectYAML/MinidumpEmitter.cpp

  • Error sectionOverflowErrorOrWarning (uint32_t PrevOffset, uint32_t OverflowedOffset, StringRef SectionName, OnCuIndexOverflow OverflowOptValue, bool & AnySectionOverflow)

    Defined at line 180 of file llvm/lib/DWP/DWP.cpp

  • ModuleSubsection convertSubsectionKind (DebugSubsectionKind K)

    Defined at line 180 of file llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp

  • Expected connectTCPSocket (StringRef NetworkAddress)

    Create a JITLinkExecutor that connects to the given network address

    through a TCP socket. A valid NetworkAddress provides hostname and port,

    e.g. localhost:20000.

    Defined at line 180 of file llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/RemoteJITUtils.cpp

  • bool isValid (const char C)

    Returns true if C is a valid mangled character:

    <

    0-9a-zA-Z_>.

    Defined at line 181 of file llvm/lib/Demangle/RustDemangle.cpp

  • bool isAIXBigArchive (Kind Kind)

    Defined at line 181 of file llvm/lib/Object/ArchiveWriter.cpp

  • template <typename T>
    DiffOutput getSingleAttrDiff (T SingleAttr, basic_string Attribute)

    Defined at line 181 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • uint32_t getSectionFlags (const MachOObjectFile & O, DataRefImpl Sec)

    Defined at line 181 of file llvm/lib/Object/MachOObjectFile.cpp

  • StringRef LlvmUserOperationEncodingString (unsigned int Encoding)

    Defined at line 181 of file llvm/lib/BinaryFormat/Dwarf.cpp

  • bool needsLeadingZero (uint64_t Value)

    For asm-style hex (e.g. 0ffh) the first digit always has to be a number.

    Defined at line 181 of file llvm/lib/MC/MCInstPrinter.cpp

  • template <typename ValueType>
    bool getOptionalVal (MDTuple * Tuple, unsigned int & Idx, const char * Key, ValueType & Value)

    Get the value of an optional field. Increment 'Idx' if it was present. Return

    true if we can move onto the next field.

    Defined at line 181 of file llvm/lib/IR/ProfileSummary.cpp

  • void printClassDecl (LinePrinter & Printer, const PDBSymbolTypeUDT & Class)

    Defined at line 181 of file llvm/tools/llvm-pdbutil/PrettyTypeDumper.cpp

  • bool isStrictSubset (const VariantMatchInfo & VMI0, const VariantMatchInfo & VMI1)

    Defined at line 181 of file llvm/lib/Frontend/OpenMP/OMPContext.cpp

  • template <typename SegmentType>
    void constructSegment (SegmentType & Seg, LoadCommandType CmdType, StringRef SegName, uint64_t SegVMAddr, uint64_t SegVMSize)

    Defined at line 181 of file llvm/lib/ObjCopy/MachO/MachOObject.cpp

  • bool parseMetadata (const StringRef & Input, uint64_t & FunctionHash, uint32_t & Attributes)

    Parse

    that contains metadata.

    Possible metadata:

    - CFG Checksum information:

    !CFGChecksum: 12345

    - CFG Checksum information:

    !Attributes: 1

    Stores the FunctionHash (a.k.a. CFG Checksum) into

    Defined at line 181 of file llvm/lib/ProfileData/SampleProfReader.cpp

  • bool checkOutput (basic_string CheckString, basic_string Output)

    Defined at line 181 of file llvm/unittests/MIR/MachineMetadata.cpp

  • ElementType toDXILElementType (Type * Ty, bool IsSigned)

    Defined at line 181 of file llvm/lib/Analysis/DXILResource.cpp

  • void stashEntryDbgValues (MachineBasicBlock & MBB, int & EntryDbgValues)

    Stash DBG_VALUEs that describe parameters and which are placed at the start

    of the block. Later on, after the prologue code has been emitted, the

    stashed DBG_VALUEs will be reinserted at the start of the block.

    Defined at line 181 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • Expected readIdentificationBlock (BitstreamCursor & Stream)

    Read the "IDENTIFICATION_BLOCK_ID" block, do some basic enforcement on the

    "epoch" encoded in the bitcode, and return the producer name if any.

    Defined at line 181 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool optimizeDivRem (Function & F, const TargetTransformInfo & TTI, const DominatorTree & DT)

    Find matching pairs of integer div/rem ops (they have the same numerator,

    denominator, and signedness). If they exist in different basic blocks, bring

    them together by hoisting or replace the common division operation that is

    implicit in the remainder:

    X % Y

    <

    --> X - ((X / Y) * Y).

    We can largely ignore the normal safety and cost constraints on speculation

    of these ops when we find a matching pair. This is because we are already

    guaranteed that any exceptions and most cost are already incurred by the

    first member of the pair.

    Note: This transform could be an oddball enhancement to EarlyCSE, GVN, or

    SimplifyCFG, but it's split off on its own because it's different enough

    that it doesn't quite match the stated objectives of those passes.

    Defined at line 181 of file llvm/lib/Transforms/Scalar/DivRemPairs.cpp

  • void initializePostDomPrinterWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 182 of file llvm/lib/Analysis/DomPrinter.cpp

  • void initializeRegionPrinterPassOnce (PassRegistry & Registry)

    Defined at line 182 of file llvm/lib/Analysis/RegionPrinter.cpp

  • BasicBlock * getCleanupRetUnwindDest (const CleanupPadInst * CleanupPad)

    Defined at line 182 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • void printDiffsCategorizedByFilesPresent (DiffsCategorizedByFilesPresent & DiffsByFilesPresent, llvm::raw_ostream & OS)

    Print all contents of

    and a high-level summary of the differences.

    Defined at line 182 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • void initializeDependenceAnalysisWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 183 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • void fixupIndex (DWARFContext & C, DWARFUnitIndex & Index)

    Defined at line 183 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • void initializePostInlineEntryExitInstrumenterPassOnce (PassRegistry & Registry)

    Defined at line 183 of file llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp

  • LLVMObjectFileRef LLVMCreateObjectFile (LLVMMemoryBufferRef MemBuf)

    Deprecated: Use LLVMCreateBinary instead.

    Defined at line 183 of file llvm/lib/Object/Object.cpp

  • Expected getAllGarbageDirs (StringRef Path)

    Defined at line 183 of file llvm/lib/CAS/UnifiedOnDiskCache.cpp

  • bool preservesUniformity (unsigned int Opcode)

    Returns true if

    preserves uniformity, i.e., if all operands are

    uniform, the result will also be uniform.

    Defined at line 183 of file llvm/lib/Transforms/Vectorize/VPlanUtils.cpp

  • Error registerJITLoaderPerfImpl (const PerfJITRecordBatch & Batch)

    Defined at line 183 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • Expected<COFF::MachineTypes> getBitcodeFileMachine (MemoryBufferRef MB)

    Defined at line 183 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • bool buildAnyextOrCopy (Register Dst, Register Src, MachineIRBuilder & MIRBuilder)

    Defined at line 183 of file llvm/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp

  • int createBBClusterInfoForFunction (MachineFunction & MF, const BasicBlockMatchingAndInference & BMI)

    This function generates the machine basic block clusters of "hot" blocks.

    Currently, only support one cluster creation.

    TODO: Support multi-cluster creation and path cloning.

    Defined at line 183 of file llvm/lib/CodeGen/BasicBlockSections.cpp

  • basic_string getDescription (const Function & F)

    Defined at line 184 of file llvm/lib/IR/Pass.cpp

  • void LLVMPassBuilderOptionsSetInlinerThreshold (LLVMPassBuilderOptionsRef Options, int Threshold)

    Defined at line 184 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • basic_string formatTrampolineType (TrampolineType Tramp)

    Defined at line 184 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • void dumpDataAux (DataExtractor Data, uint64_t Offset, int Length)

    Defined at line 184 of file llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp

  • bool evaluateTest (StringRef & InputFile, TestData & TestData, std::string & ActualStr)

    Defined at line 184 of file llvm/utils/llvm-test-mustache-spec/llvm-test-mustache-spec.cpp

  • bool profitableToRotateLoopExitingLatch (Loop * L)

    Assuming both header and latch are exiting, look for a phi which is only

    used outside the loop (via a LCSSA phi) in the exit from the header.

    This means that rotating the loop can remove the phi.

    Defined at line 184 of file llvm/lib/Transforms/Utils/LoopRotationUtils.cpp

  • bool isShortenableAtTheEnd (Instruction * I)

    Returns true if the end of this instruction can be safely shortened in

    length.

    Defined at line 184 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • void locateCStrings (SparseBitVector<8> & BV, StringRef Str)

    Scan the format string to locate all specifiers, and mark the ones that

    specify a string, i.e, the "%s" specifier with optional '*' characters.

    Defined at line 184 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • bool canSplitCallSite (CallBase & CB, TargetTransformInfo & TTI)

    Defined at line 184 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • Instruction * simplifyAllocaArraySize (InstCombinerImpl & IC, AllocaInst & AI, DominatorTree & DT)

    Defined at line 184 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • bool stripDeadDebugInfoImpl (Module & M)

    Defined at line 184 of file llvm/lib/Transforms/IPO/StripSymbols.cpp

  • void initializeRegionOnlyPrinterPassOnce (PassRegistry & Registry)

    Defined at line 185 of file llvm/lib/Analysis/RegionPrinter.cpp

  • bool isCOFFArchive (Kind Kind)

    Defined at line 185 of file llvm/lib/Object/ArchiveWriter.cpp

  • void addCalleeSavedRegs (LivePhysRegs & LiveRegs, const MachineFunction & MF)

    Adds all callee saved registers to

    Defined at line 185 of file llvm/lib/CodeGen/LivePhysRegs.cpp

  • bool setOnlyReadsMemory (Function & F, unsigned int ArgNo)

    Defined at line 185 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • IntrinsicInst * getConvergenceEntry (BasicBlock & BB)

    Defined at line 185 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • Value * findFinalIVValue (const Loop & L, const PHINode & IndVar, const Instruction & StepInst)

    Return the final value of the loop induction variable if found.

    Defined at line 185 of file llvm/lib/Analysis/LoopInfo.cpp

  • Type * getMemoryParamAllocType (AttributeSet ParamAttrs)

    For a byval, sret, inalloca, or preallocated parameter, get the in-memory

    parameter type.

    Defined at line 185 of file llvm/lib/IR/Function.cpp

  • Model getSelectedTLSModel (const GlobalValue * GV)

    Get the IR-specified TLS model for Var.

    Defined at line 185 of file llvm/lib/Target/TargetMachine.cpp

  • void copySimpleInMemoryFileImpl (const char * YamlCreationString, function_ref IsValidFormat)

    Defined at line 185 of file llvm/unittests/ObjCopy/ObjCopyTest.cpp

  • int writeTbdStub (const Triple & T, const int & Symbols, StringRef Format, raw_ostream & Out)

    Defined at line 185 of file llvm/tools/llvm-ifs/llvm-ifs.cpp

  • DenseMap clone_params (LLVMValueRef Src, LLVMValueRef Dst)

    Defined at line 185 of file llvm/tools/llvm-c-test/echo.cpp

  • void RemoveUnusedGlue (SDNode * N, SelectionDAG * DAG)

    Cleanup after unsuccessful AddGlue. Use the standard method of morphing the

    node even though simply shrinking the value list is sufficient.

    Defined at line 186 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp

  • void RegisterPassPlugins (ArrayRef PassPlugins, PassBuilder & PB)

    Defined at line 186 of file llvm/lib/LTO/LTOBackend.cpp

  • ParseRet tryParseCompileTimeLinearToken (StringRef & ParseString, VFParamKind & PKind, int & LinearStep, StringRef Token)

    The function looks for the following strings at the beginning of

    the input string `ParseString`:

    <token

    > {"n"}

    <number

    >

    On success, it removes the parsed parameter from `ParseString`,

    sets `PKind` to the correspondent enum value, sets `LinearStep` to

    <number

    >, and return success. On a syntax error, it return a

    parsing error. If nothing is parsed, it returns std::nullopt.

    The function expects

    <token

    > to be one of "l", "R", "U" or

    "L".

    Defined at line 186 of file llvm/lib/IR/VFABIDemangler.cpp

  • template <class ELFT>
    uint64_t getSectionLMA (const ELFFile<ELFT> & Obj, const object::ELFSectionRef & Sec)

    Defined at line 186 of file llvm/tools/llvm-objdump/ELFDump.cpp

  • bool hasInlineInfo (DWARFDie Die, uint32_t Depth)

    Defined at line 186 of file llvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp

  • int loadModuleFromInput (lto::InputFile * Input, LLVMContext & Context, bool Lazy, bool IsImporting)

    Defined at line 186 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • OMPScheduleType getOpenMPBaseScheduleType (ScheduleKind ClauseKind, bool HasChunks, bool HasSimdModifier, bool HasDistScheduleChunks)

    Determine which scheduling algorithm to use, determined from schedule clause

    arguments.

    Defined at line 186 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • SmallVector findSiblings (StackTrieNode * parent, int32_t FnId, uint32_t TId, const DenseMap<uint32_t, SmallVector<StackTrieNode *, 4>> & StackRootsByThreadId)

    A helper function to find the sibling nodes for an encountered function in a

    thread of execution. Relies on the invariant that each time a new node is

    traversed in a thread, sibling bidirectional pointers are maintained.

    Defined at line 186 of file llvm/tools/llvm-xray/xray-converter.cpp

  • Error parseV2DirFileTables (const DWARFDataExtractor & DebugLineData, uint64_t * OffsetPtr, DWARFDebugLine::ContentTypeTracker & ContentTypes, std::vector<DWARFFormValue> & IncludeDirectories, std::vector<DWARFDebugLine::FileNameEntry> & FileNames)

    Parse v2-v4 directory and file tables.

    Defined at line 186 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp

  • Function * createMergedFunction (FuncMergeInfo & FI, ArrayRef ConstParamTypes, const ParamLocsVecTy & ParamLocsVec)

    Given the func info, and the parameterized locations, create and return

    a new merged function by replacing the original constants with the new

    parameters.

    Defined at line 186 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • bool addBoundsChecking (Function & F, TargetLibraryInfo & TLI, ScalarEvolution & SE, const BoundsCheckingPass::Options & Opts)

    Defined at line 186 of file llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp

  • bool sinkInstruction (Loop & L, Instruction & I, const SmallVectorImpl<BasicBlock *> & ColdLoopBBs, const SmallDenseMap<BasicBlock *, int, 16> & LoopBlockNumber, LoopInfo & LI, DominatorTree & DT, BlockFrequencyInfo & BFI, MemorySSAUpdater * MSSAU)

    Sinks

    from the loop

    preheader to its uses. Returns true if

    sinking is successful.

    is used to sort the insertion blocks to ensure

    determinism.

    Defined at line 186 of file llvm/lib/Transforms/Scalar/LoopSink.cpp

  • void initializePostDomOnlyPrinterWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 187 of file llvm/lib/Analysis/DomPrinter.cpp

  • void initializeStaticDataProfileInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 187 of file llvm/lib/Analysis/StaticDataProfileInfo.cpp

  • bool areBothVScale (const Value * V1, const Value * V2)

    Return true if both V1 and V2 are VScale

    Defined at line 187 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • unsigned int getAtomicOpSize (LoadInst * LI)

    Helper functions to retrieve the size of atomic instructions.

    Defined at line 187 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • optional getOffset (ArrayRef Offsets, size_t Idx)

    Defined at line 187 of file llvm/lib/Object/SFrameParser.cpp

  • bool shouldForwardValueToReturn (const BasicBlock & BB, const Value * V, Type * RetTy)

    Defined at line 187 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • void store_cv_words (uint8_t[32] bytes_out, uint32_t[8] cv_words)

    Defined at line 187 of file llvm/lib/Support/BLAKE3/blake3_impl.h

  • void EmitSymbolRefWithOfs (MCStreamer & streamer, const MCSymbol * Base, const MCSymbol * Other)

    Defined at line 187 of file llvm/lib/MC/MCWin64EH.cpp

  • Value * LowerCTLZ (LLVMContext & Context, Value * V, Instruction * IP)

    Emit the code to lower ctlz of V before the specified instruction IP.

    Defined at line 187 of file llvm/lib/CodeGen/IntrinsicLowering.cpp

  • bool checkOrderedReduction (RecurKind Kind, Instruction * ExactFPMathInst, Instruction * Exit, PHINode * Phi)

    Check if a given Phi node can be recognized as an ordered reduction for

    vectorizing floating point operations without unsafe math.

    Defined at line 187 of file llvm/lib/Analysis/IVDescriptors.cpp

  • void warn (Twine Message)

    Defined at line 188 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • Value * skipTrivialSelect (Value * Cond)

    Helper to skip (select x, true, false), which matches both a logical AND and

    OR and can confuse code that tries to determine if

    is either a

    logical AND or OR but not both.

    Defined at line 188 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • basic_string memberAttributes (const MemberAttributes & Attrs)

    Defined at line 188 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • Expected<SectionFlag> parseSectionFlagSet (ArrayRef SectionFlags)

    Defined at line 188 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • Error dumpSectionToFile (StringRef SecName, StringRef Filename, StringRef InputFilename, Object & Obj)

    Defined at line 188 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • bool CC_X86_32_VectorCall (unsigned int & ValNo, MVT & ValVT, MVT & LocVT, CCValAssign::LocInfo & LocInfo, ISD::ArgFlagsTy & ArgFlags, CCState & State)

    Vectorcall calling convention has special handling for vector types or

    HVA for 32 bit arch.

    For HVAs actual XMM registers are allocated on the second pass.

    For vector types, actual XMM registers are allocated on the first pass.

    Returns

    true if registers were allocated and false otherwise.

    Defined at line 188 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • Instruction * dropRedundantMaskingOfLeftShiftInput (BinaryOperator * OuterShift, const SimplifyQuery & Q, InstCombiner::BuilderTy & Builder)

    If we have some pattern that leaves only some low bits set, and then performs

    left-shift of those bits, if none of the bits that are left after the final

    shift are modified by the mask, we can omit the mask.

    There are many variants to this pattern:

    a) (x

    &

    ((1

    <

    <

    MaskShAmt) - 1))

    <

    <

    ShiftShAmt

    b) (x

    &

    (~(-1

    <

    <

    MaskShAmt)))

    <

    <

    ShiftShAmt

    c) (x

    &

    (-1 l>> MaskShAmt))

    <

    <

    ShiftShAmt

    d) (x

    &

    ((-1

    <

    <

    MaskShAmt) l>> MaskShAmt))

    <

    <

    ShiftShAmt

    e) ((x

    <

    <

    MaskShAmt) l>> MaskShAmt)

    <

    <

    ShiftShAmt

    f) ((x

    <

    <

    MaskShAmt) a>> MaskShAmt)

    <

    <

    ShiftShAmt

    All these patterns can be simplified to just:

    x

    <

    <

    ShiftShAmt

    iff:

    a,b) (MaskShAmt+ShiftShAmt) u>= bitwidth(x)

    c,d,e,f) (ShiftShAmt-MaskShAmt) s>= 0 (i.e. ShiftShAmt u>= MaskShAmt)

    Defined at line 188 of file llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  • Error failedImport (const Twine & Reason)

    Helper function to let the emitter report skip reason error messages.

    Defined at line 189 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • template <typename T, DiffAttrKind U>
    void diffAttribute (basic_string Name, std::vector<DiffOutput> & Output, DiffScalarVal<T, U> Attr)

    Defined at line 189 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • xmlNsPtr getClosestDefault (xmlNodePtr Node)

    Search for the closest inheritable default namespace, starting on (and

    including) the Node and traveling upwards through parent nodes. Returns

    nullptr if there are no inheritable default namespaces.

    Defined at line 189 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • basic_string toBinaryString (uint8_t Byte)

    Defined at line 189 of file llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp

  • bool ConvertToSInt (const APFloat & APF, int64_t & IntVal)

    Convert APF to an integer, if possible.

    Defined at line 189 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • bool isBSDLike (Kind Kind)

    Defined at line 189 of file llvm/lib/Object/ArchiveWriter.cpp

  • void calculateStateNumbersForInvokes (const Function * Fn, WinEHFuncInfo & FuncInfo)

    Defined at line 189 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • void initializeRegionViewerPassOnce (PassRegistry & Registry)

    Defined at line 190 of file llvm/lib/Analysis/RegionPrinter.cpp

  • void setCannotDuplicate (CoroIdInst * CoroId)

    Prior to CoroSplit, calls to coro.begin needs to be marked as NoDuplicate,

    as CoroSplit assumes there is exactly one coro.begin. After CoroSplit,

    NoDuplicate attribute will be removed from coro.begin otherwise, it will

    interfere with inlining.

    Defined at line 190 of file llvm/lib/Transforms/Coroutines/CoroEarly.cpp

  • bool decomposeBitTest (Value * Cond, CmpInst::Predicate & Pred, Value *& X, Value *& Y, Value *& Z)

    Adapts the external decomposeBitTest for local use.

    Defined at line 190 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • pair ConvertUTF8ToUnicodeScalarsPartialLenient (StringRef S)

    Defined at line 190 of file llvm/unittests/Support/ConvertUTFTest.cpp

  • TokenKind getIdentifierKind (StringRef Identifier)

    Defined at line 190 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • bool layoutCOFF (COFFParser & CP)

    Take a CP and assign addresses and sizes to everything. Returns false if the

    layout is not valid to do.

    Defined at line 190 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • bool isNonRenamableLocal (const GlobalValue & GV)

    Defined at line 191 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • Error unsupportedBatch (const VTuneMethodBatch & MB)

    Defined at line 191 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderVTune.cpp

  • bool peek (struct InternalInstruction * insn, uint8_t & byte)

    Defined at line 191 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • uint32_t handleVFPtr (ArrayRef Data, uint32_t Offset, SmallVectorImpl<TiReference> & Refs)

    Defined at line 191 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • basic_string stripTrailingZeros (const std::string & Float)

    Defined at line 191 of file llvm/lib/Support/ScaledNumber.cpp

  • MemOpKey getMemOpKey (const MachineInstr & MI, unsigned int N)

    Returns a hash table key based on memory operands of

    The

    number of the first memory operand of

    is specified through

    Defined at line 191 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp

  • template <typename T>
    T & getAccelTable (std::unique_ptr<T> & Cache, const DWARFObject & Obj, const DWARFSection & Section, StringRef StringSection, bool IsLittleEndian)

    Defined at line 191 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • Expected getLoadCommandInfo (const MachOObjectFile & Obj, const char * Ptr, uint32_t LoadCommandIndex)

    Defined at line 191 of file llvm/lib/Object/MachOObjectFile.cpp

  • Value * reduceInstruction (Oracle & O, Module & M, Instruction & I)

    Defined at line 191 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp

  • unsigned int getAtomicOpSize (StoreInst * SI)

    Defined at line 192 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • unsigned int getLlvmUserOperationEncoding (StringRef LlvmUserOperationEncodingString)

    Defined at line 192 of file llvm/lib/BinaryFormat/Dwarf.cpp

  • OutputConfig applySettings (std::optional<OutputConfig> && Config, const OnDiskOutputBackend::OutputSettings & Settings)

    Defined at line 192 of file llvm/lib/Support/VirtualOutputBackends.cpp

  • GenericValue executeICMP_EQ (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 192 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • optional findDefaultVersion (StringRef ExtName)

    Defined at line 192 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • bool hasDuplicateClauses (ArrayRef Clauses, const Directive & Directive, StringSet<> & CrtClauses)

    Defined at line 192 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • uint64_t XXH3_mul128_fold64 (uint64_t lhs, uint64_t rhs)

    Calculates a 64-bit to 128-bit multiply, then XOR folds it.

    Defined at line 192 of file llvm/lib/Support/xxhash.cpp

  • basic_string formatSourceLanguage (SourceLanguage Lang)

    Defined at line 192 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • int llvm_ml_main (int Argc, char ** Argv, const llvm::ToolContext & )

    Defined at line 192 of file llvm/tools/llvm-ml/llvm-ml.cpp

  • int getNextToken ()

    Defined at line 193 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void initializeRegionOnlyViewerPassOnce (PassRegistry & Registry)

    Defined at line 193 of file llvm/lib/Analysis/RegionPrinter.cpp

  • int TargetArraySortFn (const std::pair<StringRef, const Target *> * LHS, const std::pair<StringRef, const Target *> * RHS)

    Defined at line 193 of file llvm/lib/MC/TargetRegistry.cpp

  • bool addressOverflows32bit (uint64_t Addr)

    Defined at line 193 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • bool setOnlyWritesMemory (Function & F, unsigned int ArgNo)

    Defined at line 193 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void moveOperands (MachineOperand * Dst, MachineOperand * Src, unsigned int NumOps, MachineRegisterInfo * MRI)

    Move NumOps MachineOperands from Src to Dst, with support for overlapping

    ranges. If MRI is non-null also update use-def chains.

    Defined at line 193 of file llvm/lib/CodeGen/MachineInstr.cpp

  • bool tryFoldNoOpMath (uint64_t Const1, ArrayRef Ops, uint64_t & Loc, DIExpressionCursor & Cursor, SmallVectorImpl<uint64_t> & WorkingOps)

    {DW_OP_constu, 0, DW_OP_[plus, minus, shl, shr]} -> {}

    {DW_OP_constu, 1, DW_OP_[mul, div]} -> {}

    Defined at line 193 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • uint64_t getCPUID (uint32_t CPUType, uint32_t CPUSubtype)

    Defined at line 193 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • unique_ptr loadFile (const std::string & FileName, LLVMContext & Context)

    Load lazily a module from

    in

    Defined at line 193 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • bool flagsNeedToBePreservedBeforeTheTerminators (const MachineBasicBlock & MBB)

    Check if the flags need to be preserved before the terminators.

    This would be the case, if the eflags is live-in of the region

    composed by the terminators or live-out of that region, without

    being defined by a terminator.

    Defined at line 193 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • Error isTrivialOperatorNode (const TreePatternNode & N)

    Defined at line 193 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • unsigned int getDwarfRegNum (MCRegister Reg, const TargetRegisterInfo * TRI)

    Go up the super-register chain until we hit a valid dwarf register number.

    Defined at line 194 of file llvm/lib/CodeGen/StackMaps.cpp

  • void BM_Mustache_DeeplyNestedRendering (benchmark::State & state)

    Tests the "hot render" cost of pushing and popping a deep context stack.

    Defined at line 194 of file llvm/benchmarks/Mustache.cpp

  • InsertionPoint insertRememberRestorePair (const InsertionPoint & RememberInsertPt, const InsertionPoint & RestoreInsertPt)

    Inserts a `.cfi_remember_state` instruction before PrologueEnd and a

    `.cfi_restore_state` instruction before DstInsertPt. Returns an iterator

    to the first instruction after the inserted `.cfi_restore_state` instruction.

    Defined at line 194 of file llvm/lib/CodeGen/CFIFixup.cpp

  • void cloneMemOperands (MachineInstr & DstMI, MachineInstr & SrcMI, MachineFunction & SrcMF, MachineFunction & DstMF)

    Defined at line 194 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • template <typename T>
    void diffAttribute (basic_string Name, std::vector<DiffOutput> & Output, const T & Val, InterfaceInputOrder Order)

    Defined at line 195 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • void initializeInterleavedAccessPassOnce (PassRegistry & Registry)

    Defined at line 195 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp

  • void initializePHIEliminationPassOnce (PassRegistry & Registry)

    Defined at line 195 of file llvm/lib/CodeGen/PHIElimination.cpp

  • const SCEV * addSCEVNoOverflow (const SCEV * A, const SCEV * B, ScalarEvolution & SE)

    Returns

    +

    if it is guaranteed not to unsigned wrap. Otherwise

    return nullptr.

    and

    must have the same type.

    Defined at line 195 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • bool isValueTypeInRegForCC (CallingConv::ID CC, MVT VT)

    Defined at line 195 of file llvm/lib/CodeGen/CallingConvLower.cpp

  • Expected getCommonSize (ObjectFile * Obj)

    Total size of all ELF common symbols

    Defined at line 195 of file llvm/tools/llvm-size/llvm-size.cpp

  • StringRef getUnwindCodeTypeName (uint8_t Code)

    Returns the name of the unwind code.

    Defined at line 195 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • void unsuppported (const std::vector<std::pair<uint64_t, uint64_t>> & UM)

    Defined at line 196 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderVTune.cpp

  • bool canBeUnquotedInDirective (char C)

    Check if the name needs quotes to be safe for the linker to interpret.

    Defined at line 196 of file llvm/lib/IR/Mangler.cpp

  • void initializeStackSlotColoringLegacyPassOnce (PassRegistry & Registry)

    Defined at line 196 of file llvm/lib/CodeGen/StackSlotColoring.cpp

  • void debug_user_sig_handler (void * Cookie)

    Signal handlers - dump debug output on termination.

    Defined at line 196 of file llvm/lib/Support/Debug.cpp

  • basic_string getErrorString (const Twine & Message, StringRef Whence, bool Warning)

    Defined at line 196 of file llvm/tools/llvm-cov/CodeCoverage.cpp

  • bool handleWriteAction (const Context & Ctx, int Out)

    Defined at line 196 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • bool tryForwardingInstructionsToReturn (Function & F, Oracle & O, std::vector<std::pair<Function *, Value *>> & FuncsToReplace)

    Defined at line 196 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • template <typename T>
    T getLEB128 (StringRef Data, uint64_t * OffsetPtr, Error * Err, T (&)(const uint8_t *, unsigned int *, const uint8_t *, const char **) Decoder)

    Defined at line 196 of file llvm/lib/Support/DataExtractor.cpp

  • void runTest (StringRef InputFile)

    Defined at line 196 of file llvm/utils/llvm-test-mustache-spec/llvm-test-mustache-spec.cpp

  • pair decodeUTF8 (StringRef Range)

    Defined at line 196 of file llvm/lib/Support/YAMLParser.cpp

  • Error readInitExpr (wasm::WasmInitExpr & Expr, WasmObjectFile::ReadContext & Ctx)

    Defined at line 196 of file llvm/lib/Object/WasmObjectFile.cpp

  • int isVariantApplicableInContextHelper (const VariantMatchInfo & VMI, const OMPContext & Ctx, SmallVectorImpl<unsigned int> * ConstructMatches, bool DeviceOrImplementationSetOnly)

    Defined at line 196 of file llvm/lib/Frontend/OpenMP/OMPContext.cpp

  • unsigned int getAtomicOpSize (AtomicRMWInst * RMWI)

    Defined at line 197 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • bool isUseOnlyIntrinsic (unsigned int ID)

    A list of intrinsics that we know do not use objc pointers or decrement

    ref counts.

    Defined at line 197 of file llvm/lib/Analysis/ObjCARCInstKind.cpp

  • Expected getArchiveMemberOctField (Twine FieldName, StringRef RawField, const Archive * Parent, const AbstractArchiveMemberHeader * MemHeader)

    Defined at line 197 of file llvm/lib/Object/Archive.cpp

  • void addVCallToSet (DevirtCallSite Call, GlobalValue::GUID Guid, SetVector<FunctionSummary::VFuncId, std::vector<FunctionSummary::VFuncId>> & VCalls, SetVector<FunctionSummary::ConstVCall, std::vector<FunctionSummary::ConstVCall>> & ConstVCalls)

    Determine whether this call has all constant integer arguments (excluding

    "this") and summarize it to VCalls or ConstVCalls as appropriate.

    Defined at line 197 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • Directory layout (BlobAllocator & File, Stream & S)

    Defined at line 197 of file llvm/lib/ObjectYAML/MinidumpEmitter.cpp

  • bool markTails (Function & F, OptimizationRemarkEmitter * ORE)

    Defined at line 197 of file llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp

  • template <class T>
    T checkedGetHex (StringRef S)

    Defined at line 198 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • void makeFunctionBodyUnreachable (Function & F)

    Defined at line 198 of file llvm/lib/Transforms/IPO/Inliner.cpp

  • bool handleFile (StringRef Filename, OutlinedHashTreeRecord & GlobalOutlineRecord, StableFunctionMapRecord & GlobalFunctionMapRecord)

    Defined at line 198 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • void fillIndirectionTable (GlobalVariable * IndirectionTable, SmallVector Indirections)

    Defined at line 198 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • StringRef getOverloadKindStr (const Record * R)

    Return a string representation of OverloadKind enum that maps to

    input LLVMType record

    Parameters

    R TableGen def record of class LLVMType

    Returns

    std::string string representation of OverloadKind

    Defined at line 198 of file llvm/utils/TableGen/DXILEmitter.cpp

  • Value * expandBinOp (BinaryOps Opcode, Value * V, Value * OtherOp, BinaryOps OpcodeToExpand, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Try to simplify a binary operator of form "V op OtherOp" where V is

    "(B0 opex B1)" by distributing 'op' across 'opex' as

    "(B0 op OtherOp) opex (B1 op OtherOp)".

    Defined at line 198 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Error collectRemarks ()

    Defined at line 198 of file llvm/tools/llvm-remarkutil/RemarkCounter.cpp

  • SetVector buildExtractionBlockSet (ArrayRef BBs, DominatorTree * DT, bool AllowVarArgs, bool AllowAlloca)

    Build a set of blocks to extract if the input blocks are viable.

    Defined at line 198 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • void emitTypeConstraint (raw_ostream & OS, SDTypeConstraint C, const int & VTByHwModeTable)

    Defined at line 198 of file llvm/utils/TableGen/SDNodeInfoEmitter.cpp

  • BaseIndexOffset matchLSNode (const LSBaseSDNode * N, const SelectionDAG & DAG)

    Parses tree in Ptr for base, index, offset addresses.

    Defined at line 198 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp

  • template <typename T>
    bool consume (InternalInstruction * insn, T & ptr)

    Defined at line 199 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • void combineWeightsByHashing (WeightList & Weights)

    Defined at line 199 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • uint32_t handleListContinuation (ArrayRef Data, uint32_t Offset, SmallVectorImpl<TiReference> & Refs)

    Defined at line 200 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • int GetTokPrecedence ()

    GetTokPrecedence - Get the precedence of the pending binary operator token.

    Defined at line 200 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void EmitRuntimeFunction (MCStreamer & streamer, const WinEH::FrameInfo * info)

    Defined at line 200 of file llvm/lib/MC/MCWin64EH.cpp

  • bool canBeUnquotedInDirective (StringRef Name)

    Defined at line 200 of file llvm/lib/IR/Mangler.cpp

  • vector getSingleIF (InterfaceFile * Interface, InterfaceInputOrder Order)

    Defined at line 200 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • void initializeWindowsSecureHotPatchingPassOnce (PassRegistry & Registry)

    Defined at line 201 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp

  • void handleYAMLDiag (const SMDiagnostic & Diag, void * Context)

    Defined at line 201 of file llvm/lib/CodeGen/MIRParser/MIRParser.cpp

  • bool GenerateSignBits (Instruction * I)

    Defined at line 201 of file llvm/lib/CodeGen/TypePromotion.cpp

  • unsigned int getSubOpcode (bool Is64Bit)

    Defined at line 201 of file llvm/lib/Target/X86/X86DynAllocaExpander.cpp

  • bool setRetNoUndef (Function & F)

    Defined at line 201 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void printTypeCountMap (raw_ostream & OS, LineLocation Loc, const TypeCountMap & TypeCountMap)

    Defined at line 201 of file llvm/lib/ProfileData/SampleProf.cpp

  • bool isStructOfMatchingFixedVectors (Type * Ty)

    Defined at line 201 of file llvm/lib/Transforms/Scalar/Scalarizer.cpp

  • unsigned int getAtomicOpSize (AtomicCmpXchgInst * CASI)

    Defined at line 202 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • void getNextDBDirName (StringRef DBDir, llvm::raw_ostream & OS)

    Defined at line 202 of file llvm/lib/CAS/UnifiedOnDiskCache.cpp

  • template <IR IRTy>
    void RUOW (benchmark::State & State)

    Defined at line 202 of file llvm/benchmarks/SandboxIRBench.cpp

  • void ReplaceFPIntrinsicWithCall (CallInst * CI, const char * Fname, const char * Dname, const char * LDname)

    Defined at line 202 of file llvm/lib/CodeGen/IntrinsicLowering.cpp

  • void convertToGuardPredicates (ArrayRef Branches, ArrayRef Outgoing, SmallVectorImpl<BasicBlock *> & GuardBlocks, SmallVectorImpl<WeakVH> & DeletionCandidates, StringRef Prefix, optional MaxControlFlowBooleans)

    Capture the existing control flow as guard predicates, and redirect

    control flow from

    block through the

    to the

    blocks.

    There is one guard predicate for each outgoing block OutBB. The

    predicate represents whether the hub should transfer control flow

    to OutBB. These predicates are NOT ORTHOGONAL. The Hub evaluates

    them in the same order as the Outgoing set-vector, and control

    branches to the first outgoing block whose predicate evaluates to true.

    The last guard block has two outgoing blocks as successors since the

    condition for the final outgoing block is trivially true. So we create one

    less block (including the first guard block) than the number of outgoing

    blocks.

    Defined at line 202 of file llvm/lib/Transforms/Utils/ControlFlowUtils.cpp

  • int createTargetMachine (const Config & Conf, const Target * TheTarget, Module & M)

    Defined at line 202 of file llvm/lib/LTO/LTOBackend.cpp

  • TinyPtrVector collectHomogenousInstGraphLoopInvariants (const Loop & L, Instruction & Root, const LoopInfo & LI)

    Collect all of the loop invariant input values transitively used by the

    homogeneous instruction graph from a given root.

    This essentially walks from a root recursively through loop variant operands

    which have perform the same logical operation (AND or OR) and finds all

    inputs which are loop invariant. For some operations these can be

    re-associated and unswitched out of the loop entirely.

    Defined at line 202 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void usage (bool ExitWithFailure)

    Defined at line 202 of file llvm/tools/llvm-config/llvm-config.cpp

  • Error addAllTypesFromDWP (MCStreamer & Out, MapVector<uint64_t, UnitIndexEntry> & TypeIndexEntries, const DWARFUnitIndex & TUIndex, MCSection * OutputTypes, StringRef Types, const UnitIndexEntry & TUEntry, uint32_t & TypesOffset, unsigned int TypesContributionIndex, OnCuIndexOverflow OverflowOptValue, bool & AnySectionOverflow)

    Defined at line 202 of file llvm/lib/DWP/DWP.cpp

  • void DecodeIITType (unsigned int & NextElt, ArrayRef Infos, IIT_Info LastInfo, SmallVectorImpl<Intrinsic::IITDescriptor> & OutputTable)

    Defined at line 202 of file llvm/lib/IR/Intrinsics.cpp

  • void initializeDebugifyMachineModulePassOnce (PassRegistry & Registry)

    Defined at line 203 of file llvm/lib/CodeGen/MachineDebugify.cpp

  • bool isEpilogProfitable (Loop * L)

    The function chooses which type of unroll (epilog or prolog) is more

    profitabale.

    Epilog unroll is more profitable when there is PHI that starts from

    constant. In this case epilog will leave PHI start from constant,

    but prolog will convert it to non-constant.

    loop:

    PN = PHI [I, Latch], [CI, PreHeader]

    I = foo(PN)

    ...

    Epilog unroll case.

    loop:

    PN = PHI [I2, Latch], [CI, PreHeader]

    I1 = foo(PN)

    I2 = foo(I1)

    ...

    Prolog unroll case.

    NewPN = PHI [PrologI, Prolog], [CI, PreHeader]

    loop:

    PN = PHI [I2, Latch], [NewPN, PreHeader]

    I1 = foo(PN)

    I2 = foo(I1)

    ...

    Defined at line 203 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • template <typename TypeT>
    const TargetRegisterClass * getMinimalPhysRegClass (const TargetRegisterInfo * TRI, MCRegister Reg, TypeT Ty)

    Defined at line 203 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp

  • BranchProbability probOfNextInRemainder (BranchProbability OriginalLoopProb, unsigned int N)

    Assume, due to our position in the remainder loop or its guard, anywhere

    from 0 to

    more iterations can possibly execute. Among such cases in

    the original loop (with loop probability

    what is the

    probability of executing at least one more iteration?

    Defined at line 203 of file llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp

  • bool isProfitable (const StableFunctionMap::StableFunctionEntries & SFS)

    Defined at line 203 of file llvm/lib/CGData/StableFunctionMap.cpp

  • bool findArrayDimensionsRec (ScalarEvolution & SE, SmallVectorImpl<const SCEV *> & Terms, SmallVectorImpl<const SCEV *> & Sizes)

    Defined at line 203 of file llvm/lib/Analysis/Delinearization.cpp

  • Error mergeAttributes (xmlNodePtr OriginalNode, xmlNodePtr AdditionalNode)

    Merge the attributes of AdditionalNode into OriginalNode. If attributes

    with identical types are present, they are not duplicated but rather if

    their values are not consistent and error is thrown. In addition, the

    higher priority namespace is used for each attribute, EXCEPT in the case

    of merging two default namespaces and the lower priority namespace

    definition occurs closer than the higher priority one.

    Defined at line 203 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • bool CleanupPointerRootUsers (GlobalVariable * GV, function_ref<TargetLibraryInfo &(Function &)> GetTLI)

    This GV is a pointer root. Loop over all users of the global and clean up

    any that obviously don't assign the global a value that isn't dynamically

    allocated.

    Defined at line 203 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void updateBranchWeights (BranchInst & PreHeaderBI, BranchInst & LoopBI, bool HasConditionalPreHeader, bool SuccsSwapped)

    Defined at line 203 of file llvm/lib/Transforms/Utils/LoopRotationUtils.cpp

  • void initializePostRASchedulerLegacyPassOnce (PassRegistry & Registry)

    Defined at line 204 of file llvm/lib/CodeGen/PostRASchedulerList.cpp

  • const SCEV * mulSCEVOverflow (const SCEV * A, const SCEV * B, ScalarEvolution & SE)

    Returns

    *

    if it is guaranteed not to unsigned wrap. Otherwise

    return nullptr.

    and

    must have the same type.

    Defined at line 204 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • bool isRepresentableAsExactInteger (const APFloat & FPVal, int64_t IntVal)

    Ensure we stay within the bounds of fp values that can be represented as

    integers without gaps, which are 2^24 and 2^53 for IEEE-754 single and

    double precision respectively (both on negative and positive side).

    Defined at line 204 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • MDNode * createStringMetadata (Loop * TheLoop, StringRef Name, unsigned int V)

    Create MDNode for input string.

    Defined at line 204 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void propagateAttributesToRefs (GlobalValueSummary * S, DenseSet<ValueInfo> & MarkedNonReadWriteOnly)

    Defined at line 204 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • bool validateArgsTypes (const Init * Arg1, const Init * Arg2)

    Defined at line 205 of file llvm/utils/TableGen/CompressInstEmitter.cpp

  • template <class T>
    void print (raw_ostream & Out, Kind Kind, T Val)

    Defined at line 205 of file llvm/lib/Object/ArchiveWriter.cpp

  • Value * peekThroughBitcasts (Value * V)

    Return the source operand of a potentially bitcasted value. If there is no

    bitcast, return the input value itself.

    Defined at line 205 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • void cleanupModule (Module & M)

    Defined at line 205 of file llvm/tools/llvm-split/llvm-split.cpp

  • basic_string formatPointerAttrs (const PointerRecord & Record)

    Defined at line 205 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • void externalize (GlobalValue * GV)

    Defined at line 205 of file llvm/lib/Transforms/Utils/SplitModule.cpp

  • void error (Error E, StringRef FileName, StringRef ArchitectureName)

    This version of error() prints the file name and which architecture slice it

    is from, for example: "foo.o (for architecture i386)" after the ToolName

    before the error message. It sets HadError but returns allowing the code to

    move on to other architecture slices.

    Defined at line 205 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool parseTypeCountMap (StringRef Input, DenseMap<StringRef, uint64_t> & TypeCountMap)

    Parse `Input` as a white-space separated list of `vtable:count` pairs. An

    example input line is `_ZTVbar:1471 _ZTVfoo:630`.

    Defined at line 205 of file llvm/lib/ProfileData/SampleProfReader.cpp

  • void collectLocStats (uint64_t ScopeBytesCovered, uint64_t BytesInScope, std::vector<SaturatingUINT64> & VarParamLocStats, std::vector<SaturatingUINT64> & ParamLocStats, std::vector<SaturatingUINT64> & LocalVarLocStats, bool IsParam, bool IsLocalVar)

    Collect debug location statistics for one DIE.

    Defined at line 205 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • MarkerStyle GetMarker (MatchType MatchTy)

    Defined at line 205 of file llvm/utils/FileCheck/FileCheck.cpp

  • unsigned int getNumEntered ()

    Defined at line 206 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • void printForSigInfoIfNeeded ()

    Defined at line 206 of file llvm/lib/Support/PrettyStackTrace.cpp

  • GenericValue executeICMP_NE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 206 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • bool runImpl (const TargetLibraryInfo & TLI, Function & F)

    Defined at line 206 of file llvm/lib/CodeGen/ReplaceWithVeclib.cpp

  • Expected<DsymutilAccelTableKind> getAccelTableKind (opt::InputArgList & Args)

    Defined at line 206 of file llvm/tools/dsymutil/dsymutil.cpp

  • Expected<SectionRename> parseRenameSectionValue (StringRef FlagValue)

    Defined at line 206 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • bool findDependencies (DependenceKind Flavor, const Value * Arg, BasicBlock * StartBB, Instruction * StartInst, SmallPtrSetImpl<Instruction *> & DependingInsts, ProvenanceAnalysis & PA)

    Walk up the CFG from StartPos (which is in StartBB) and find local and

    non-local dependencies on Arg.

    TODO: Cache results?

    Defined at line 206 of file llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp

  • Value * getValueOnEdge (LazyValueInfo * LVI, Value * Incoming, BasicBlock * From, BasicBlock * To, Instruction * CxtI)

    Defined at line 206 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • StoreInst * findSafeStoreForStoreStrongContraction (LoadInst * Load, Instruction * Release, ProvenanceAnalysis & PA, AAResults * AA)

    Defined at line 206 of file llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp

  • bool isRelaxableBranch (unsigned int Opcode)

    Defined at line 207 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • bool isValidDispOp (const MachineOperand & MO)

    Defined at line 207 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp

  • AddressRanges ConvertDWARFRanges (const DWARFAddressRangesVector & DwarfRanges)

    Defined at line 207 of file llvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp

  • Expected getFirstLoadCommandInfo (const MachOObjectFile & Obj)

    Defined at line 207 of file llvm/lib/Object/MachOObjectFile.cpp

  • bool machineMatches (MachineTypes LibMachine, MachineTypes FileMachine)

    Defined at line 207 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • AssertionResult CheckConvertUTF8ToUnicodeScalars (ConvertUTFResultContainer Expected, StringRef S, bool Partial)

    Defined at line 207 of file llvm/unittests/Support/ConvertUTFTest.cpp

  • bool convertToRelativeLookupTables (Module & M, function_ref GetTTI)

    Convert lookup tables to relative lookup tables in the module.

    Defined at line 207 of file llvm/lib/Transforms/Utils/RelLookupTableConverter.cpp

  • void emitHelpTextsForVariants (raw_ostream & OS, vector HelpTextsForVariants)

    Defined at line 207 of file llvm/utils/TableGen/OptionParserEmitter.cpp

  • error_code manageTimeout (const std::chrono::milliseconds & Timeout, const std::function<int ()> & getActiveFD, const std::optional<int> & CancelFD)

    If a file descriptor being monitored by ::poll is closed by another thread,

    the result is unspecified. In the case ::poll does not unblock and return,

    when ActiveFD is closed, you can provide another file descriptor via CancelFD

    that when written to will cause poll to return. Typically CancelFD is the

    read end of a unidirectional pipe.

    Timeout should be -1 to block indefinitly

    getActiveFD is a callback to handle ActiveFD's of std::atomic

    <int

    > and int

    Defined at line 207 of file llvm/lib/Support/raw_socket_stream.cpp

  • ElementType toDXILStorageType (ElementType ET)

    Defined at line 208 of file llvm/lib/Analysis/DXILResource.cpp

  • StringRef getExtensionTypeDesc (StringRef Ext)

    Defined at line 208 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • bool handleMergeAction (const Context & Ctx)

    Defined at line 208 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • bool isPotentialBlockingStoreInst (unsigned int Opcode, unsigned int LoadOpcode)

    Defined at line 208 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • error_code resolveRelocation (const Dumper::Context & Ctx, const coff_section * Section, uint64_t Offset, const coff_section *& ResolvedSection, uint64_t & ResolvedAddress)

    Defined at line 208 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • void copyMetadataForAtomic (Instruction & Dest, const Instruction & Source)

    Copy metadata that's safe to preserve when widening atomics.

    Defined at line 208 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • bool isREX (struct InternalInstruction * insn, uint8_t prefix)

    Defined at line 209 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool isShortenableAtTheBeginning (Instruction * I)

    Returns true if the beginning of this instruction can be safely shortened

    in length.

    Defined at line 209 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • template <class T, class Iterator>
    Iterator toHexStr (T X, Iterator It, size_t Len)

    Fills exactly Len bytes of buffer with hexadecimal characters

    representing value 'X'

    Defined at line 209 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • bool tryFoldConstants (uint64_t Const1, ArrayRef Ops, uint64_t & Loc, DIExpressionCursor & Cursor, SmallVectorImpl<uint64_t> & WorkingOps)

    {DW_OP_constu, Const1, DW_OP_constu, Const2, DW_OP_[plus,

    minus, mul, div, shl, shr] -> {DW_OP_constu, Const1 [+, -, *, /,

    <

    <

    , >>]

    Const2}

    Defined at line 209 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • void crossImportIntoModule (Module & TheModule, const ModuleSummaryIndex & Index, int & ModuleMap, const FunctionImporter::ImportMapTy & ImportList, bool ClearDSOLocalOnDeclarations)

    Defined at line 209 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • int merge_main (int argc, const char *[] argv)

    Defined at line 209 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • bool ContainsProtectableArray (Type * Ty, Module * M, unsigned int SSPBufferSize, bool & IsLarge, bool Strong, bool InStruct)

    Parameters

    IsLarge [out] is set to true if a protectable array is found and it is "large" ( >= ssp-buffer-size). In the case of a structure with multiple arrays, this gets set if any of them is large.

    Defined at line 209 of file llvm/lib/CodeGen/StackProtector.cpp

  • void handleFieldList (ArrayRef Content, SmallVectorImpl<TiReference> & Refs)

    Defined at line 209 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • optional getMaskedTypeForICmpPair (Value *& A, Value *& B, Value *& C, Value *& D, Value *& E, Value * LHS, Value * RHS, ICmpInst::Predicate & PredL, ICmpInst::Predicate & PredR)

    Handle (icmp(A

    &

    B) ==/!= C)

    &

    /| (icmp(A

    &

    D) ==/!= E).

    Return the pattern classes (from MaskedICmpType) for the left hand side and

    the right hand side as a pair.

    LHS and RHS are the left hand side and the right hand side ICmps and PredL

    and PredR are their predicates, respectively.

    Defined at line 209 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void printInt (raw_ostream & OS, int Val)

    Defined at line 210 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • bool isTagType (basic_string_view S)

    Defined at line 210 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • SmallVector getOperands (ArrayRef Values, unsigned int OperandIndex)

    Defined at line 210 of file llvm/lib/Transforms/Vectorize/VPlanSLP.cpp

  • bool shouldSkipLocalInAnotherModule (const GlobalValueSummary * RefSummary, size_t NumDefs, StringRef ImporterModule)

    Defined at line 210 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • bool iterativelySinkInstructions (Function & F, DominatorTree & DT, LoopInfo & LI, AAResults & AA)

    Defined at line 210 of file llvm/lib/Transforms/Scalar/Sink.cpp

  • Constant * rebuildConstant (LLVMContext & Ctx, Type * SclTy, const APInt & Bits, unsigned int NumSclBits)

    Split raw bits into a constant vector of elements of a specific bit width.

    NOTE: We don't always bother converting to scalars if the vector length is 1.

    Defined at line 210 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • bool canHoistOrSinkWithNoAliasCheck (const MemoryLocation & MemLoc, VPBasicBlock * FirstBB, VPBasicBlock * LastBB, optional SinkInfo)

    Check if a memory operation doesn't alias with memory operations in blocks

    between

    and

    using scoped noalias metadata. If

    is std::nullopt, only recipes that may write to memory are

    checked (for load hoisting). Otherwise recipes that both read and write

    memory are checked, and SCEV is used to prove no-alias between the group

    leader and other replicate recipes (for store sinking).

    Defined at line 210 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • template <class T>
    void printLE (raw_ostream & Out, T Val)

    Defined at line 211 of file llvm/lib/Object/ArchiveWriter.cpp

  • StringRef extractSegmentName (const char * SegName)

    Extracts a segment name from a string which is possibly non-null-terminated.

    Defined at line 211 of file llvm/lib/ObjCopy/MachO/MachOObject.cpp

  • StringRef getFunctionName (const DISubprogram * SP)

    Defined at line 211 of file llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp

  • unsigned int getRelaxedOpcodeBranch (unsigned int Opcode, bool Is16BitMode)

    Defined at line 211 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • bool setArgsNoUndef (Function & F)

    Defined at line 211 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool canWidenLoad (LoadInst * Load, const TargetTransformInfo & TTI)

    Defined at line 211 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • bool hasDuplicateClausesInDirectives (ArrayRef Directives)

    Check for duplicate clauses in lists. Clauses cannot appear twice in the

    three allowed list. Also, since required implies allowed, clauses cannot

    appear in both the allowedClauses and requiredClauses lists.

    Defined at line 211 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • Error validateOutOfProcess (StringRef LLVMCasBinary, StringRef RootPath, bool CheckHash)

    Defined at line 211 of file llvm/lib/CAS/UnifiedOnDiskCache.cpp

  • InstructionCost ComputeSpeculationCost (const Instruction * I, const TargetTransformInfo & TTI)

    Defined at line 211 of file llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp

  • basic_string computePowerDataLayout (const Triple & T, StringRef ABIName)

    Defined at line 211 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • unique_ptr LogError (const char * Str)

    LogError* - These are little helper functions for error handling.

    Defined at line 212 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • unsigned int getFrameIndexOperandNum (MachineInstr & MI)

    Defined at line 212 of file llvm/lib/CodeGen/RegisterScavenging.cpp

  • void viewRegionInfo (RegionInfo * RI, bool ShortNames)

    Defined at line 212 of file llvm/lib/Analysis/RegionPrinter.cpp

  • void BM_Mustache_HugeArrayIteration (benchmark::State & state)

    Tests the performance of the loop logic when iterating over a huge number of

    items.

    Defined at line 212 of file llvm/benchmarks/Mustache.cpp

  • optional GetOptionalAbsDifference (const MCAssembler & Assembler, const MCSymbol * LHS, const MCSymbol * RHS)

    Defined at line 212 of file llvm/lib/MC/MCWin64EH.cpp

  • bool isDeInterleaveMask (ArrayRef Mask, unsigned int & Factor, unsigned int & Index, unsigned int MaxFactor, unsigned int NumLoadElements)

    Check if the mask is a DE-interleave mask for an interleaved load.

    E.g. DE-interleave masks (Factor = 2) could be:

    <

    0, 2, 4, 6> (mask of index 0 to extract even elements)

    <

    1, 3, 5, 7> (mask of index 1 to extract odd elements)

    Defined at line 212 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp

  • ParseRet tryParseLinearWithCompileTimeStep (StringRef & ParseString, VFParamKind & PKind, int & StepOrPos)

    The function looks for the following strings at the beginning of

    the input string `ParseString`:

    ["l" | "R" | "U" | "L"] {"n"}

    <number

    >

    On success, it removes the parsed parameter from `ParseString`,

    sets `PKind` to the correspondent enum value, sets `LinearStep` to

    <number

    >, and return success. On a syntax error, it return a

    parsing error. If nothing is parsed, it returns std::nullopt.

    Defined at line 212 of file llvm/lib/IR/VFABIDemangler.cpp

  • bool matchAndOrChain (Value * V, MaskOps & MOps)

    This is a recursive helper for foldAnyOrAllBitsSet() that walks through a

    chain of 'and' or 'or' instructions looking for shift ops of a common source

    value. Examples:

    or (or (or X, (X >> 3)), (X >> 5)), (X >> 8)

    returns { X, 0x129 }

    and (and (X >> 1), 1), (X >> 4)

    returns { X, 0x12 }

    Defined at line 212 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • int llvm_objcopy_main (int argc, char ** , const llvm::ToolContext & )

    Defined at line 212 of file llvm/tools/llvm-objcopy/llvm-objcopy.cpp

  •  llvm_orc_registerVTuneImpl (const char * ArgData, size_t ArgSize)

    Defined at line 200 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderVTune.cpp

  •  llvm_orc_unregisterVTuneImpl (const char * ArgData, size_t ArgSize)

    Defined at line 208 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderVTune.cpp

  • bool DoLowering (Function & F, GCStrategy & S)

    Lower barriers out of existence (if the associated GCStrategy hasn't

    already done so...), and insert initializing stores to roots as a defensive

    measure. Given we're going to report all roots live at all safepoints, we

    need to be able to ensure each root has been initialized by the point the

    first safepoint is reached. This really should have been done by the

    frontend, but the old API made this non-obvious, so we do a potentially

    redundant store just in case.

    Defined at line 204 of file llvm/lib/CodeGen/GCRootLowering.cpp

  • LLVMErrorTypeId LLVMGetErrorTypeId (LLVMErrorRef Err)

    Returns the type id for the given error instance, which must be a failure

    value (i.e. non-null).

    Defined at line 186 of file llvm/lib/Support/Error.cpp

  • void LLVMConsumeError (LLVMErrorRef Err)

    Dispose of the given error without handling it. This operation consumes the

    error, and the given LLVMErrorRef value is not usable once this call returns.

    Note: This method *only* needs to be called if the error is not being passed

    to some other consuming operation, e.g. LLVMGetErrorMessage.

    Defined at line 190 of file llvm/lib/Support/Error.cpp

  • void dumpDebugPubSections (llvm::DWARFContext & DCtx, llvm::DWARFYAML::Data & Y)

    Defined at line 202 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • void UpdateSSA (DominatorTree & DT, CallBrInst * CBR, CallInst * Intrinsic, SSAUpdater & SSAUpdate)

    Defined at line 185 of file llvm/lib/CodeGen/CallBrPrepare.cpp

  • void LLVMCantFail (LLVMErrorRef Err)

    Report a fatal error if Err is a failure value.

    This function can be used to wrap calls to fallible functions ONLY when it is

    known that the Error will always be a success value.

    Defined at line 194 of file llvm/lib/Support/Error.cpp

  • bool isIdenticalOp (const MachineOperand & MO1, const MachineOperand & MO2)

    Returns true if two machine operands are identical and they are not

    physical registers.

    Defined at line 201 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp

  • char * LLVMGetErrorMessage (LLVMErrorRef Err)

    Returns the given string's error message. This operation consumes the error,

    and the given LLVMErrorRef value is not usable once this call returns.

    The caller is responsible for disposing of the string by calling

    LLVMDisposeErrorMessage.

    Defined at line 198 of file llvm/lib/Support/Error.cpp

  • void LLVMDisposeErrorMessage (char * ErrMsg)

    Dispose of the given error message.

    Defined at line 206 of file llvm/lib/Support/Error.cpp

  • LLVMErrorTypeId LLVMGetStringErrorTypeId ()

    Returns the type id for llvm StringError.

    Defined at line 208 of file llvm/lib/Support/Error.cpp

  • LLVMErrorRef LLVMCreateStringError (const char * ErrMsg)

    Create a StringError.

    Defined at line 212 of file llvm/lib/Support/Error.cpp

  • size_t LLVMDisasmInstruction (LLVMDisasmContextRef DC, uint8_t * Bytes, uint64_t BytesSize, uint64_t PC, char * OutString, size_t OutStringSize)

    Disassemble a single instruction using the disassembler context specified in

    the parameter DC. The bytes of the instruction are specified in the

    parameter Bytes, and contains at least BytesSize number of bytes. The

    instruction is at the address specified by the PC parameter. If a valid

    instruction can be disassembled, its string is returned indirectly in

    OutString whose size is specified in the parameter OutStringSize. This

    function returns the number of bytes in the instruction or zero if there was

    no valid instruction.

    Defined at line 194 of file llvm/lib/MC/MCDisassembler/Disassembler.cpp

  • const char * lto_get_version ()

    Returns a printable string.

    Defined at line 188 of file llvm/tools/lto/lto.cpp

  • const char * lto_get_error_message ()

    Returns the last error string or NULL if last operation was successful.

    Defined at line 192 of file llvm/tools/lto/lto.cpp

  • lto_bool_t lto_module_is_object_file (const char * path)

    Checks if a file is a loadable object file.

    Defined at line 196 of file llvm/tools/lto/lto.cpp

  • lto_bool_t lto_module_is_object_file_for_target (const char * path, const char * target_triple_prefix)

    Checks if a file is a loadable object compiled for requested target.

    Defined at line 200 of file llvm/tools/lto/lto.cpp

  • void LLVMDisposePassBuilderOptions (LLVMPassBuilderOptionsRef Options)

    Dispose of a heap-allocated PassBuilderOptions instance

    Defined at line 189 of file llvm/lib/Passes/PassBuilderBindings.cpp

  • lto_bool_t lto_module_has_objc_category (const void * mem, size_t length)

    Return true if

    contains a bitcode file with ObjC code (category

    or class) in it.

    Defined at line 209 of file llvm/tools/lto/lto.cpp

  • void LLVMTargetMachineOptionsSetCodeModel (LLVMTargetMachineOptionsRef Options,  CodeModel)

    Defined at line 194 of file llvm/lib/Target/TargetMachineC.cpp

  • LLVMTargetMachineRef LLVMCreateTargetMachineWithOptions (LLVMTargetRef T, const char * Triple, LLVMTargetMachineOptionsRef Options)

    Create a new llvm::TargetMachine.

    Parameters

    T the target to create a machine for.
    Triple a triple describing the target machine.
    Options additional configuration (see LLVMCreateTargetMachineOptions()).

    Defined at line 200 of file llvm/lib/Target/TargetMachineC.cpp

  • void LLVMDisposeSectionIterator (LLVMSectionIteratorRef SI)

    Defined at line 208 of file llvm/lib/Object/Object.cpp

  • LLVMTargetMachineRef LLVMCreateTargetMachine (LLVMTargetRef T, const char * Triple, const char * CPU, const char * Features,  Level,  Reloc,  CodeModel)

    Creates a new llvm::TargetMachine. See llvm::Target::createTargetMachine

    Defined at line 211 of file llvm/lib/Target/TargetMachineC.cpp

  • void printDarwinSectionSizes (MachOObjectFile * MachO)

    Print the size of each Mach-O segment and section in

    This is when used when

    is darwin and produces the same

    output as darwin's size(1) -m output.

    Defined at line 212 of file llvm/tools/llvm-size/llvm-size.cpp

  • Loop * separateNestedLoop (Loop * L, BasicBlock * Preheader, DominatorTree * DT, LoopInfo * LI, ScalarEvolution * SE, bool PreserveLCSSA, AssumptionCache * AC, MemorySSAUpdater * MSSAU)

    If this loop has multiple backedges, try to pull one of them out into

    a nested loop.

    This is important for code that looks like

    this:

    Loop:

    ...

    br cond, Loop, Next

    ...

    br cond2, Loop, Out

    To identify this common case, we look at the PHI nodes in the header of the

    loop. PHI nodes with unchanging values on one backedge correspond to values

    that change in the "outer" loop, but not in the "inner" loop.

    If we are able to separate out a loop, return the new outer loop that was

    created.

    Defined at line 212 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • bool isDwoSection (const MCSection & Sec)

    Defined at line 213 of file llvm/lib/MC/WinCOFFObjectWriter.cpp

  • bool isREX2 (struct InternalInstruction * insn, uint8_t prefix)

    Defined at line 213 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool compareDiceTableEntries (const DiceTableEntry & i, const DiceTableEntry & j)

    This is used to search for a data in code table entry for the PC being

    disassembled. The j parameter has the PC in j.first. A single data in code

    table entry can cover many bytes for each of its Kind's. So if the offset,

    aka the i.first value, of the data in code table entry plus its Length

    covers the PC being searched for this will return true. If not it will

    return false.

    Defined at line 213 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isSimilarDispOp (const MachineOperand & MO1, const MachineOperand & MO2)

    Returns true if two address displacement operands are of the same

    type and use the same symbol/index/address regardless of the offset.

    Defined at line 213 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp

  • StringRef getUnwindRegisterName (uint8_t Reg)

    Returns the name of a referenced register.

    Defined at line 213 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • OMPScheduleType getOpenMPOrderingScheduleType (OMPScheduleType BaseScheduleType, bool HasOrderedClause)

    Adds ordering modifier flags to schedule type.

    Defined at line 213 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void HandleUnsupportedAnnotationKinds (GlobalVariable & GVar, AnnotationKind Kind)

    Defined at line 213 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • Error runSplitModuleByCategory (unique_ptr M)

    Defined at line 213 of file llvm/tools/llvm-split/llvm-split.cpp

  • void EvaluateOps (unsigned short Elt, unsigned short[] Vals, unsigned int & NumVals)

    Defined at line 213 of file llvm/utils/PerfectShuffle/PerfectShuffle.cpp

  • void findBestInsertionSet (DominatorTree & DT, BlockFrequencyInfo & BFI, BasicBlock * Entry, SetVector<BasicBlock *> & BBs)

    Given

    as input, find another set of BBs which collectively

    dominates

    and have the minimal sum of frequencies. Return the BB

    set found in

    Defined at line 213 of file llvm/lib/Transforms/Scalar/ConstantHoisting.cpp

  • bool evaluatePtrAddRecAtMaxBTCWillNotWrap (const SCEVAddRecExpr * AR, const SCEV * MaxBTC, const SCEV * EltSize, ScalarEvolution & SE, const DataLayout & DL, DominatorTree * DT, AssumptionCache * AC, std::optional<ScalarEvolution::LoopGuards> & LoopGuards)

    Return true, if evaluating

    at

    cannot wrap, because

    at

    is guaranteed inbounds of the accessed object.

    Defined at line 213 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • basic_string formatFunctionOptions (FunctionOptions Options)

    Defined at line 214 of file llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp

  • void replaceFallthroughCoroEnd (AnyCoroEndInst * End, const coro::Shape & Shape, Value * FramePtr, bool InRamp, CallGraph * CG)

    Replace a non-unwind call to llvm.coro.end.

    Defined at line 214 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • void LLVMDisposeExecutionEngine (LLVMExecutionEngineRef EE)

    Defined at line 215 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • bool isLEA (unsigned int Opcode)

    Defined at line 215 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • bool isUnconditionalBranch (Instruction * Term)

    Defined at line 215 of file llvm/lib/Transforms/Scalar/ADCE.cpp

  • uint64_t getAggregateNumElements (Type * T)

    Defined at line 215 of file llvm/lib/FuzzMutate/Operations.cpp

  • bool mayBeInCycle (const CycleInfo * CI, const Instruction * I, bool HeaderOnly, int ** CPtr)

    Defined at line 215 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • std::optional<TypeSize> getPointerSize (const Value * V, const DataLayout & DL, const TargetLibraryInfo & TLI, const Function * F)

    Defined at line 215 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • void printRestOfMemberHeader (raw_ostream & Out, const sys::TimePoint<std::chrono::seconds> & ModTime, unsigned int UID, unsigned int GID, unsigned int Perms, uint64_t Size)

    Defined at line 215 of file llvm/lib/Object/ArchiveWriter.cpp

  • Error OpenMarker (PerfState & State)

    Defined at line 215 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • void parseOptions (const opt::InputArgList & Args)

    Defined at line 215 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • bool isNotInCycle (const Instruction * I, const DominatorTree * DT, const LoopInfo * LI)

    Defined at line 216 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  •  llvm_orc_test_registerVTuneImpl (const char * ArgData, size_t ArgSize)

    Defined at line 216 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderVTune.cpp

  • MachineBasicBlock * findCorrespondingPred (const MachineInstr * MI, MachineOperand * U)

    Defined at line 216 of file llvm/lib/CodeGen/MachineSSAUpdater.cpp

  • void findAndAddDiff (const std::vector<InterfaceFileRef> & CollectedIRefVec, const std::vector<InterfaceFileRef> & LookupIRefVec, DiffOutput & Result, InterfaceInputOrder Order)

    Defined at line 216 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • bool canProveExitOnFirstIteration (Loop * L, DominatorTree & DT, LoopInfo & LI)

    Try to prove that one of conditions that dominates the latch must exit on 1st

    iteration.

    Defined at line 216 of file llvm/lib/Transforms/Scalar/LoopDeletion.cpp

  • unique_ptr LogErrorP (const char * Str)

    Defined at line 217 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void initializeMachineUniformityAnalysisPassPassOnce (PassRegistry & Registry)

    Defined at line 217 of file llvm/lib/CodeGen/MachineUniformityAnalysis.cpp

  • basic_string GetPatFromTreePatternNode (const TreePatternNode & N)

    Defined at line 217 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  • StackTrieNode * findOrCreateStackNode (StackTrieNode * Parent, int32_t FuncId, uint32_t TId, DenseMap<uint32_t, SmallVector<StackTrieNode *, 4>> & StackRootsByThreadId, DenseMap<unsigned int, StackTrieNode *> & StacksByStackId, unsigned int * id_counter, std::forward_list<StackTrieNode> & NodeStore)

    Given a function being invoked in a thread with id TId, finds and returns the

    StackTrie representing the function call stack. If no node exists, creates

    the node. Assigns unique IDs to stacks newly encountered among all threads

    and keeps sibling links up to when creating new nodes.

    Defined at line 217 of file llvm/tools/llvm-xray/xray-converter.cpp

  • bool eliminateCondBranches_v3 (Function & F, DominatorTree & DT)

    Eliminate branches with constant conditionals. This is the third

    version, which uses PatternMatch.h.

    Defined at line 217 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • MDNode * createMIBNode (LLVMContext & Ctx, ArrayRef MIBCallStack, AllocationType AllocType, ArrayRef ContextSizeInfo, const uint64_t MaxColdSize, bool BuiltFromExistingMetadata, uint64_t & TotalBytes, uint64_t & ColdBytes)

    Defined at line 217 of file llvm/lib/Analysis/MemoryProfileInfo.cpp

  • void parseInlineInfo (GsymCreator & Gsym, OutputAggregator & Out, CUInfo & CUI, DWARFDie Die, uint32_t Depth, FunctionInfo & FI, InlineInfo & Parent, const AddressRanges & AllParentRanges, bool & WarnIfEmpty)

    Defined at line 217 of file llvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp

  • void dumpDebugInfo (llvm::DWARFContext & DCtx, llvm::DWARFYAML::Data & Y)

    Defined at line 217 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • void LLVMMoveToNextSection (LLVMSectionIteratorRef SI)

    Defined at line 218 of file llvm/lib/Object/Object.cpp

  • MachineOperand * getSalvageOpsForCopy (const MachineRegisterInfo & MRI, MachineInstr & Copy)

    Defined at line 218 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp

  • uint64_t XXH3_avalanche (uint64_t hash)

    Defined at line 218 of file llvm/lib/Support/xxhash.cpp

  • std::optional<AllocFnsTy> getAllocationData (const Value * V, AllocType AllocTy, const TargetLibraryInfo * TLI)

    Defined at line 218 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void combineWeights (WeightList & Weights)

    Defined at line 218 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • StringRef getExtensionType (StringRef Ext)

    Defined at line 218 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • unsigned int hashCallInst (CallInst * CI)

    Defined at line 218 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • Expected getNextLoadCommandInfo (const MachOObjectFile & Obj, uint32_t LoadCommandIndex, const MachOObjectFile::LoadCommandInfo & L)

    Defined at line 218 of file llvm/lib/Object/MachOObjectFile.cpp

  • Constant * getTorInit (std::vector<std::pair<Function *, int>> & TorList)

    getTorInit - Given a list of entries for static ctors/dtors, return them

    as a constant array.

    Defined at line 218 of file llvm/tools/bugpoint/ExtractFunction.cpp

  • bool tryForwardingArgumentsToReturn (Function & F, Oracle & O, std::vector<std::pair<Function *, Value *>> & FuncsToReplace)

    Defined at line 218 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp

  • bool isInPartition (const GlobalValue * GV, unsigned int I, unsigned int N)

    Returns whether GV should be in partition (0-based) I of N.

    Defined at line 218 of file llvm/lib/Transforms/Utils/SplitModule.cpp

  • void addIntrinsicToSummary (const CallInst * CI, SetVector<GlobalValue::GUID, std::vector<GlobalValue::GUID>> & TypeTests, SetVector<FunctionSummary::VFuncId, std::vector<FunctionSummary::VFuncId>> & TypeTestAssumeVCalls, SetVector<FunctionSummary::VFuncId, std::vector<FunctionSummary::VFuncId>> & TypeCheckedLoadVCalls, SetVector<FunctionSummary::ConstVCall, std::vector<FunctionSummary::ConstVCall>> & TypeTestAssumeConstVCalls, SetVector<FunctionSummary::ConstVCall, std::vector<FunctionSummary::ConstVCall>> & TypeCheckedLoadConstVCalls, DominatorTree & DT)

    If this intrinsic call requires that we add information to the function

    summary, do so via the non-constant reference arguments.

    Defined at line 218 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • void out_of_memory_new_handler ()

    Causes crash on allocation failure. It is called prior to the handler set by

    'install_bad_alloc_error_handler'.

    Defined at line 219 of file llvm/lib/Support/ErrorHandling.cpp

  • void LLVMRunStaticConstructors (LLVMExecutionEngineRef EE)

    Defined at line 219 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • lto_bool_t lto_module_is_object_file_in_memory (const void * mem, size_t length)

    Checks if a buffer is a loadable object file.

    Defined at line 219 of file llvm/tools/lto/lto.cpp

  • bool isDiagnosticEnabled (const DiagnosticInfo & DI)

    Defined at line 219 of file llvm/lib/IR/LLVMContext.cpp

  • void printValues (raw_ostream & O, const DIEValueList & Values, StringRef Type, unsigned int Size, unsigned int IndentCount)

    Defined at line 219 of file llvm/lib/CodeGen/AsmPrinter/DIE.cpp

  • std::pair<Value *, Value *> getShape (PHINode * Phi)

    Defined at line 219 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • void error (Error Err)

    @

    }

    ===----------------------------------------------------------------------===//

    Defined at line 220 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • template <typename nlist_t>
    SymbolEntry constructSymbolEntry (StringRef StrTable, const nlist_t & nlist)

    Defined at line 220 of file llvm/lib/ObjCopy/MachO/MachOReader.cpp

  • GenericValue executeICMP_ULT (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 220 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • InsertionPoint cloneCfiPrologue (const InsertionPoint & PrologueEnd, const InsertionPoint & DstInsertPt)

    Copies all CFI instructions before PrologueEnd and inserts them before

    DstInsertPt. Returns the iterator to the first instruction after the

    inserted instructions.

    Defined at line 220 of file llvm/lib/CodeGen/CFIFixup.cpp

  • bool isCustomType (basic_string_view S)

    Defined at line 221 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • bool areCommutative (ArrayRef Values)

    Defined at line 221 of file llvm/lib/Transforms/Vectorize/VPlanSLP.cpp

  • bool isContained (DIScope * Inner, DIScope * Outer)

    Defined at line 221 of file llvm/lib/Transforms/Utils/DebugSSAUpdater.cpp

  • Instruction * cloneInstForMustTail (Instruction * I, ilist_iterator_w_bits Before, Value * V)

    Defined at line 221 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • bool canMemFoldInlineAsm (LiveInterval & LI, const MachineRegisterInfo & MRI)

    Defined at line 221 of file llvm/lib/CodeGen/CalcSpillWeights.cpp

  • unsigned int getSubRegIndex (const TargetRegisterClass * RC)

    Defined at line 221 of file llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp

  • bool isProfitableToTransform (const Loop & L, const BranchInst * BI)

    Defined at line 221 of file llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp

  • void replaceTargetsFromPHINode (BasicBlock * PHIBlock, BasicBlock * Find, BasicBlock * Replace, DenseSet<BasicBlock *> & Included)

    Rewrite the BranchInsts in the incoming blocks to

    that are found

    in

    to branch to BasicBlock

    if they currently branch

    to the BasicBlock

    This is used to fix up the incoming basic blocks

    when PHINodes are included in outlined regions.

    Parameters

    PHIBlock - The BasicBlock containing the PHINodes that need to be checked.
    Find - The successor block to be replaced.
    Replace - The new succesor block to branch to.
    Included - The set of blocks about to be outlined.

    Defined at line 221 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • Error loadYAML (sys::fs::file_t Fd, size_t FileSize, StringRef Filename, InstrumentationMap::SledContainer & Sleds, InstrumentationMap::FunctionAddressMap & FunctionAddresses, InstrumentationMap::FunctionAddressReverseMap & FunctionIds)

    Defined at line 221 of file llvm/lib/XRay/InstrumentationMap.cpp

  • void updateLoopInfo (LoopInfo & LI, Cycle & C, ArrayRef GuardBlocks)

    Defined at line 221 of file llvm/lib/Transforms/Utils/FixIrreducible.cpp

  • Value * concatenate (IRBuilder<> & Builder, ArrayRef Fragments, const VectorSplit & VS, Twine Name)

    Concatenate the given fragments to a single vector value of the type

    described in

    Defined at line 221 of file llvm/lib/Transforms/Scalar/Scalarizer.cpp

  • uint64_t DumpDataInCode (const uint8_t * bytes, uint64_t Length, unsigned short Kind)

    Defined at line 221 of file llvm/tools/llvm-objdump/MachODump.cpp

  • MachineBasicBlock & splitEdge (MachineBasicBlock & MBB, MachineBasicBlock & Succ, int SuccCount, MachineInstr * Br, MachineInstr *& UncondBr, const X86InstrInfo & TII)

    Defined at line 221 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp

  • SmallString<128> getFilename (const DIScope * SP, vfs::FileSystem & VFS)

    Extract a filename for a DIScope.

    Prefer relative paths in the coverage notes. Clang also may split

    up absolute paths into a directory and filename component. When

    the relative path doesn't exist, reconstruct the absolute path.

    Defined at line 222 of file llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp

  • void initializePartiallyInlineLibCallsLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 222 of file llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp

  • void LLVMMoveToContainingSection (LLVMSectionIteratorRef Sect, LLVMSymbolIteratorRef Sym)

    Defined at line 222 of file llvm/lib/Object/Object.cpp

  • void dumpFunctionDefinition (COFFYAML::Symbol * Sym, const object::coff_aux_function_definition * ObjFD)

    Defined at line 222 of file llvm/tools/obj2yaml/coff2yaml.cpp

  • void emitCaseMap (raw_ostream & O, const int & CaseMap)

    Defined at line 222 of file llvm/utils/TableGen/CodeEmitterGen.cpp

  • void invokeFunctionPass (const Function * F, FunctionPass * ViewerPass)

    Defined at line 222 of file llvm/lib/Analysis/RegionPrinter.cpp

  • Expected testMergedProgram (const BugDriver & BD, const Module & M1, const Module & M2, bool & Broken)

    Given two modules, link them together and run the program, checking to see

    if the program matches the diff. If there is an error, return NULL. If not,

    return the merged module. The Broken argument will be set to true if the

    output is different. If the DeleteInputs argument is set to true then this

    function deletes both input modules before it returns.

    Defined at line 222 of file llvm/tools/bugpoint/Miscompilation.cpp

  • SourcePred validExtractValueIndex ()

    Defined at line 222 of file llvm/lib/FuzzMutate/Operations.cpp

  • bool isMinMaxReductionPhiWithUsersOutsideReductionChain (PHINode * Phi, RecurKind Kind, Loop * TheLoop, RecurrenceDescriptor & RedDes)

    Returns true if

    is a min/max reduction matching

    where

    is used outside the reduction chain. This is common for loops selecting the

    index of a minimum/maximum value (argmin/argmax).

    Defined at line 222 of file llvm/lib/Analysis/IVDescriptors.cpp

  • Value * callBufferedPrintfStart (IRBuilder<> & Builder, ArrayRef Args, Value * Fmt, bool isConstFmtStr, SparseBitVector<8> & SpecIsCString, SmallVectorImpl<StringData> & StringContents, Value *& ArgSize)

    Calculates frame size required for current printf expansion and allocates

    space on printf buffer. Printf frame includes following contents

    [ ControlDWord , format string/Hash , Arguments (each aligned to 8 byte) ]

    Defined at line 222 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • int readPrefixes (struct InternalInstruction * insn)

    Consumes all of an instruction's prefix bytes, and marks the

    instruction as having them. Also sets the instruction's default operand,

    address, and other relevant data sizes to report operands correctly.

    insn must not be empty.

    Defined at line 222 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • void initializeMachineFunctionSplitterPassOnce (PassRegistry & Registry)

    Defined at line 223 of file llvm/lib/CodeGen/MachineFunctionSplitter.cpp

  • void initializeX86PreTileConfigPassOnce (PassRegistry & Registry)

    Defined at line 223 of file llvm/lib/Target/X86/X86PreTileConfig.cpp

  • unsigned int getRelaxedOpcode (const MCInst & MI, bool Is16BitMode)

    Defined at line 223 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • bool setArgNoUndef (Function & F, unsigned int ArgNo)

    Defined at line 223 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • lto_bool_t lto_module_is_object_file_in_memory_for_target (const void * mem, size_t length, const char * target_triple_prefix)

    Checks if a buffer is a loadable object compiled for requested target.

    Defined at line 223 of file llvm/tools/lto/lto.cpp

  • void TestFunctionInfoEncodeError (endianness ByteOrder, const FunctionInfo & FI, basic_string ExpectedErrorMsg)

    Defined at line 223 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • bool isPointerType (basic_string_view S)

    Defined at line 223 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • Error emitPubSection (raw_ostream & OS, const DWARFYAML::PubSection & Sect, bool IsLittleEndian, bool IsGNUPubSec)

    Defined at line 223 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • Expected generateDXContainer (StringRef Yaml, SmallVectorImpl<char> & BinaryData)

    Defined at line 223 of file llvm/unittests/Object/DXContainerTest.cpp

  • void replaceWithIndirectUse (const Use & U, const GlobalVariable * G, Constant * IndirectedG)

    Defined at line 223 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • size_t compress_parents_parallel (const uint8_t * child_chaining_values, size_t num_chaining_values, const uint32_t[8] key, uint8_t flags, uint8_t * out)

    Use SIMD parallelism to hash up to MAX_SIMD_DEGREE parents at the same time

    on a single thread. Write out the parent chaining values and return the

    number of parents hashed. (If there's an odd input chaining value left over,

    return it as an additional output.) These parents are never the root and

    never empty; those cases use a different codepath.

    Defined at line 223 of file llvm/lib/Support/BLAKE3/blake3.c

  • basic_string formatMachineType (CPUType Cpu)

    Defined at line 223 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • void LLVMRunStaticDestructors (LLVMExecutionEngineRef EE)

    Defined at line 224 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void debugDumpRecord (const Record & Rec)

    Defined at line 224 of file llvm/utils/TableGen/Common/InstructionEncoding.cpp

  • void getUnmergeResults (SmallVectorImpl<Register> & Regs, const MachineInstr & MI)

    Append the result registers of G_UNMERGE_VALUES

    to

    Defined at line 224 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • unsigned int GetVBRSize (unsigned int Val)

    Defined at line 224 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  • void initializePhiValuesWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 225 of file llvm/lib/Analysis/PhiValues.cpp

  • unique_ptr ParseNumberExpr ()

    numberexpr ::= number

    Defined at line 225 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • StringRef checkStr (LLVMRemarkStringRef Str, unsigned int ExpectedLen)

    Defined at line 225 of file llvm/unittests/Remarks/BitstreamRemarksParsingTest.cpp

  • uint64_t XXH3_len_1to3_64b (const uint8_t * input, size_t len, const uint8_t * secret, uint64_t seed)

    Defined at line 225 of file llvm/lib/Support/xxhash.cpp

  • void stubifyImpl (int IF, Context & Ctx)

    Defined at line 225 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • bool FindExactlyAttributes (RetainedKnowledgeMap & Map, Value * WasOn, StringRef AttrToMatch)

    Defined at line 225 of file llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp

  • MachineOperand * getSalvageOpsForTrunc (const MachineRegisterInfo & MRI, MachineInstr & Trunc, SmallVectorImpl<uint64_t> & Ops)

    Defined at line 225 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp

  • void appendFile (int & Members, COFF::MachineTypes & LibMachine, std::string & LibMachineSource, MemoryBufferRef MB)

    Defined at line 225 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp

  • MVT scaleVectorType (MVT VT)

    Changing the scale of the vector type by reducing the number of elements and

    doubling the scalar size.

    Defined at line 226 of file llvm/lib/Target/X86/X86InterleavedAccess.cpp

  • std::optional<AllocFnsTy> getAllocationData (const Value * V, AllocType AllocTy, function_ref<const TargetLibraryInfo &(Function &)> GetTLI)

    Defined at line 226 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • Expected getIntValFromKey (const remarks::Remark & Remark, unsigned int ArgIdx, StringRef ExpectedKeyName)

    Collects an expected integer value from a given argument index in a remark.

    - The remark.

    - The index where the integer value should be found.

    - The expected key name for the index

    (e.g. "InstructionCount")

    Defined at line 226 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • SmallVector getOperands (ArrayRef Values)

    Defined at line 226 of file llvm/lib/Transforms/Vectorize/VPlanSLP.cpp

  • vector predictValueUseListOrder (const Value * V, unsigned int ID, const OrderMap & OM)

    Defined at line 226 of file llvm/lib/IR/AsmWriter.cpp

  • void error (StringRef Prefix, Error Err)

    Defined at line 227 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • bool dontUseFastISelFor (const Function & Fn)

    Defined at line 227 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • void emitRISCVExtensionBitmask (const RecordKeeper & RK, raw_ostream & OS)

    Defined at line 227 of file llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  • uint64_t shiftRightAndRound (uint64_t N, int Shift)

    Defined at line 228 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • bool CC_X86_AnyReg_Error (unsigned int & , MVT & , MVT & , CCValAssign::LocInfo & , ISD::ArgFlagsTy & , CCState & )

    Defined at line 228 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • optional isExperimentalExtension (StringRef Ext)

    Defined at line 228 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • void BM_Mustache_ComplexTemplateParsing (benchmark::State & state)

    Tests the performance of the parser on a large, "wide" template.

    Defined at line 228 of file llvm/benchmarks/Mustache.cpp

  • Expected<DsymutilDWARFLinkerType> getDWARFLinkerType (opt::InputArgList & Args)

    Defined at line 228 of file llvm/tools/dsymutil/dsymutil.cpp

  • void EmitUnwindInfo (MCStreamer & streamer, WinEH::FrameInfo * info)

    Defined at line 228 of file llvm/lib/MC/MCWin64EH.cpp

  • bool reportInvalidCandidate (const Instruction & I, llvm::Statistic & Stat)

    Defined at line 229 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp

  • int LLVMRunFunctionAsMain (LLVMExecutionEngineRef EE, LLVMValueRef F, unsigned int ArgC, const char *const * ArgV, const char *const * EnvP)

    Defined at line 229 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • CondCode getCondFromBranch (const MCInst & MI, const MCInstrInfo & MCII)

    Defined at line 229 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • unsigned int getSelectFoldableOperands (BinaryOperator * I)

    We want to turn code that looks like this:

    %C = or %A, %B

    %D = select %cond, %C, %A

    into:

    %C = select %cond, %B, 0

    %D = or %A, %C

    Assuming that the specified instruction is an operand to the select, return

    a bitmask indicating which operands of this instruction are foldable if they

    equal the other incoming value of the select.

    Defined at line 229 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • Expected readIdentificationCode (BitstreamCursor & Stream)

    Defined at line 229 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool isDenselyPacked (Type * Ty, const DataLayout & DL)

    Checks if a type could have padding bytes.

    Defined at line 229 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • bool iterativelySimplifyCFG (Function & F, const TargetTransformInfo & TTI, DomTreeUpdater * DTU, const SimplifyCFGOptions & Options)

    Call SimplifyCFG on all the blocks in the function,

    iterating until no more changes are made.

    Defined at line 229 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  • bool RunTermFold (Loop * L, ScalarEvolution & SE, DominatorTree & DT, LoopInfo & LI, const TargetTransformInfo & TTI, TargetLibraryInfo & TLI, MemorySSA * MSSA)

    Defined at line 229 of file llvm/lib/Transforms/Scalar/LoopTermFold.cpp

  • unsigned int getHashValueImpl (SimpleValue Val)

    Defined at line 229 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • void ProfileRecordRecTy (FoldingSetNodeID & ID, ArrayRef Classes)

    Defined at line 230 of file llvm/lib/TableGen/Record.cpp

  • void printGNUSmallMemberHeader (raw_ostream & Out, StringRef Name, const sys::TimePoint<std::chrono::seconds> & ModTime, unsigned int UID, unsigned int GID, unsigned int Perms, uint64_t Size)

    Defined at line 230 of file llvm/lib/Object/ArchiveWriter.cpp

  • const object::coff_section * getSectionContaining (const COFFObjectFile & COFF, uint64_t VA)

    Defined at line 230 of file llvm/tools/llvm-readobj/Win64EHDumper.cpp

  • ArrayRef GetDeoptBundleOperands (const CallBase * Call)

    Defined at line 230 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • iterator_range qualifyCalleeCandidates (const ModuleSummaryIndex & Index, ArrayRef CalleeSummaryList, StringRef CallerModulePath)

    Given a list of possible callee implementation for a call site, qualify the

    legality of importing each. The return is a range of pairs. Each pair

    corresponds to a candidate. The first value is the ImportFailureReason for

    that candidate, the second is the candidate.

    Defined at line 230 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • bool isLEA (const MachineInstr & MI)

    Returns true if the instruction is LEA.

    Defined at line 231 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp

  • bool setRetAndArgsNoUndef (Function & F)

    Defined at line 231 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void simplifyPass (MutableArrayRef Worklist, const DataLayout & DL)

    Perform a single pass of simplification over the worklist of PHIs.

    This should be called after RewriteAllUses() because simplifying PHIs

    immediately after creation would require updating all references to those

    PHIs in the BBValueInfo structures, which would necessitate additional

    reference tracking overhead.

    Defined at line 231 of file llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp

  • template <typename TypeT>
    const TargetRegisterClass * getCommonMinimalPhysRegClass (const TargetRegisterInfo * TRI, MCRegister Reg1, MCRegister Reg2, TypeT Ty)

    Defined at line 231 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp

  • basic_string getOverloadMaskString (ArrayRef<const Record *> Recs)

    Return a string representation of valid overload information denoted

    by input records

    Parameters

    Recs A vector of records of TableGen Overload records

    Returns

    std::string string representation of overload mask string

    predicated by DXIL Version. E.g.,

    {{{1, 0}, Mask1}, {{1, 2}, Mask2}, ...}

    Defined at line 231 of file llvm/utils/TableGen/DXILEmitter.cpp

  • bool isIdentifierChar (char C, bool AllowAt, bool AllowHash)

    LexIdentifier: [a-zA-Z_$.

    @

    ?][a-zA-Z0-9_$.

    #

    ?]*

    Defined at line 232 of file llvm/lib/MC/MCParser/AsmLexer.cpp

  • void printHeader (LinePrinter & P, const Twine & S)

    Defined at line 232 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • unique_ptr ParseParenExpr ()

    parenexpr ::= '(' expression ')'

    Defined at line 232 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • template <typename T>
    void parseHeader (const MachOObjectFile & Obj, T & Header, Error & Err)

    Defined at line 232 of file llvm/lib/Object/MachOObjectFile.cpp

  • Value * expandCommutativeBinOp (BinaryOps Opcode, Value * L, Value * R, BinaryOps OpcodeToExpand, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Try to simplify binops of form "A op (B op' C)" or the commuted variant by

    distributing op over op'.

    Defined at line 232 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Expected<std::pair<StringRef, uint64_t>> parseSetSectionAttribute (StringRef Option, StringRef FlagValue)

    Defined at line 232 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • unsigned int getYMMtoXMMLoadOpcode (unsigned int LoadOpcode)

    Defined at line 232 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • void initializeBasicBlockPathCloningPassOnce (PassRegistry & Registry)

    Defined at line 233 of file llvm/lib/CodeGen/BasicBlockPathCloning.cpp

  • uint32_t getOffsetInStream (ArrayRef StreamBlocks, uint64_t FileOffset, uint32_t BlockSize)

    Defined at line 233 of file llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp

  • void findAndAddDiff (const std::vector<std::pair<Target, std::string>> & CollectedPairs, const std::vector<std::pair<Target, std::string>> & LookupPairs, DiffOutput & Result, InterfaceInputOrder Order)

    Defined at line 233 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • bool shouldIgnorePass (StringRef PassID)

    Defined at line 234 of file llvm/lib/IR/PassTimingInfo.cpp

  • void dumpbfAndEfLineInfo (COFFYAML::Symbol * Sym, const object::coff_aux_bf_and_ef_symbol * ObjBES)

    Defined at line 234 of file llvm/tools/obj2yaml/coff2yaml.cpp

  • template <typename StructType>
    const char * readString (MachOYAML::LoadCommand & LC, const llvm::object::MachOObjectFile::LoadCommandInfo & LoadCmd)

    Defined at line 234 of file llvm/tools/obj2yaml/macho2yaml.cpp

  • GenericValue executeICMP_SLT (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 234 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • const TargetRegisterClass * getRegClassFromGRPhysReg (Register Reg)

    Defined at line 234 of file llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp

  • SDValue emitRepmovs (const X86Subtarget & Subtarget, SelectionDAG & DAG, const SDLoc & dl, SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, MVT AVT)

    Emit a single REP MOVS{B,W,D,Q} instruction.

    Defined at line 234 of file llvm/lib/Target/X86/X86SelectionDAGInfo.cpp

  • bool tryFoldCommutativeMath (uint64_t Const1, ArrayRef Ops, uint64_t & Loc, DIExpressionCursor & Cursor, SmallVectorImpl<uint64_t> & WorkingOps)

    {DW_OP_constu, Const1, DW_OP_[plus, mul], DW_OP_constu, Const2,

    DW_OP_[plus, mul]} -> {DW_OP_constu, Const1 [+, *] Const2, DW_OP_[plus,

    mul]}

    Defined at line 234 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • void optimizeModule (Module & TheModule, TargetMachine & TM, unsigned int OptLevel, bool Freestanding, bool DebugPassManager, ModuleSummaryIndex * Index)

    Defined at line 234 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • int & getRunPassNames ()

    Defined at line 235 of file llvm/tools/llc/llc.cpp

  • const LiveRange * getLiveRange (const LiveIntervals & LIS, VirtRegOrUnit VRegOrUnit)

    Defined at line 235 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • void error (StringRef Prefix, error_code EC)

    Defined at line 235 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • void initializeMachinePipelinerPassOnce (PassRegistry & Registry)

    Defined at line 235 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • void CloseMarker (PerfState & State)

    Defined at line 235 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • void reportGISelDiagnostic (DiagnosticSeverity Severity, MachineFunction & MF, MachineOptimizationRemarkEmitter & MORE, MachineOptimizationRemarkMissed & R)

    Defined at line 235 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void RemoveFunctionReferences (Module * M, const char * Name)

    Defined at line 235 of file llvm/tools/bugpoint/CrashDebugger.cpp

  • Predicate getIntegerPredicate (Predicate FPPred)

    Defined at line 235 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • basic_string constructDieID (DWARFDie Die, StringRef Prefix)

    Construct an identifier for a given DIE from its Prefix, Name, DeclFileName

    and DeclLine. The identifier aims to be unique for any unique entities,

    but keeping the same among different instances of the same entity.

    Defined at line 235 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • std::optional<AllocFnsTy> getAllocationSize (const CallBase * CB, const TargetLibraryInfo * TLI)

    Defined at line 235 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void predictValueUseListOrder (const Value * V, const Function * F, OrderMap & OM, UseListOrderStack & Stack)

    Defined at line 235 of file llvm/lib/Bitcode/Writer/ValueEnumerator.cpp

  • void addOneOperandFields (const Record * EncodingDef, const BitsInit & InstBits, int & TiedNames, const Record * OpRec, StringRef OpName, OperandInfo & OpInfo)

    For an operand field named OpName: populate OpInfo.InitValue with the

    constant-valued bit values, and OpInfo.Fields with the ranges of bits to

    insert from the decoded instruction.

    Defined at line 235 of file llvm/utils/TableGen/Common/InstructionEncoding.cpp

  • LLVMBool LLVMLoadLibraryPermanently (const char * Filename)

    This function permanently loads the dynamic library at the given path.

    It is safe to call this function multiple times for the same library.

    Defined at line 243 of file llvm/lib/Support/DynamicLibrary.cpp

  • void LLVMInstallFatalErrorHandler (LLVMFatalErrorHandler Handler)

    Install a fatal error handler. By default, if LLVM detects a fatal error, it

    will call exit(1). This may not be appropriate in many contexts. For example,

    doing exit(1) will bypass many crash reporting/tracing system tools. This

    function allows you to install a callback that will be invoked prior to the

    call to exit(1).

    Defined at line 259 of file llvm/lib/Support/ErrorHandling.cpp

  • void LLVMResetFatalErrorHandler ()

    Reset the fatal error handler. This resets LLVM's fatal error handling

    behavior to the default.

    Defined at line 264 of file llvm/lib/Support/ErrorHandling.cpp

  • void * LLVMSearchForAddressOfSymbol (const char * symbolName)

    This function will search through all previously loaded dynamic

    libraries for the symbol

    If it is found, the address of

    that symbol is returned. If not, null is returned.

    Defined at line 247 of file llvm/lib/Support/DynamicLibrary.cpp

  • void LLVMAddSymbol (const char * symbolName, void * symbolValue)

    This functions permanently adds the symbol

    with the

    value

    These symbols are searched before any

    libraries.

    Defined at line 251 of file llvm/lib/Support/DynamicLibrary.cpp

  • int LLVMSetDisasmOptions (LLVMDisasmContextRef DC, uint64_t Options)

    LLVMSetDisasmOptions() sets the disassembler's options. It returns 1 if it

    can set all the Options and 0 otherwise.

    Defined at line 250 of file llvm/lib/MC/MCDisassembler/Disassembler.cpp

  • int llvm_regcomp (llvm_regex_t * , const char * , int )

    Defined at line 286 of file llvm/lib/Support/regcomp.c

  • template <typename MB>
    ErrorOr<std::unique_ptr<MB>> getFileAux (const Twine & Filename, uint64_t MapSize, uint64_t Offset, bool IsText, bool RequiresNullTerminator, bool IsVolatile, optional Alignment)

    Defined at line 280 of file llvm/lib/Support/MemoryBuffer.cpp

  • int dump (ObjectStore & CAS)

    Defined at line 264 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • int listObjectReferences (ObjectStore & CAS, const CASID & ID)

    Defined at line 285 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • int catNodeData (ObjectStore & CAS, const CASID & ID)

    Defined at line 279 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • int makeBlob (ObjectStore & CAS, StringRef DataPath)

    Defined at line 270 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • int makeNode (ObjectStore & CAS, ArrayRef<std::string> References, StringRef DataPath)

    Defined at line 297 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • LLVMGenericValueRef LLVMRunFunction (LLVMExecutionEngineRef EE, LLVMValueRef F, unsigned int NumArgs, LLVMGenericValueRef * Args)

    Defined at line 238 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void LLVMFreeMachineCodeForFunction (LLVMExecutionEngineRef EE, LLVMValueRef F)

    Defined at line 253 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void LLVMAddModule (LLVMExecutionEngineRef EE, LLVMModuleRef M)

    Defined at line 256 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMBool LLVMRemoveModule (LLVMExecutionEngineRef EE, LLVMModuleRef M, LLVMModuleRef * OutMod, char ** OutError)

    Defined at line 260 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMBool LLVMFindFunction (LLVMExecutionEngineRef EE, const char * Name, LLVMValueRef * OutFn)

    Defined at line 268 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void convertMRI (yaml::MachineFunction & YamlMF, const MachineFunction & MF, const MachineRegisterInfo & RegInfo, const TargetRegisterInfo * TRI)

    Defined at line 302 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • void * LLVMRecompileAndRelinkFunction (LLVMExecutionEngineRef EE, LLVMValueRef Fn)

    Defined at line 277 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMTargetDataRef LLVMGetExecutionEngineTargetData (LLVMExecutionEngineRef EE)

    Defined at line 282 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMTargetMachineRef LLVMGetExecutionEngineTargetMachine (LLVMExecutionEngineRef EE)

    Defined at line 286 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void LLVMAddGlobalMapping (LLVMExecutionEngineRef EE, LLVMValueRef Global, void * Addr)

    Defined at line 291 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void * LLVMGetPointerToGlobal (LLVMExecutionEngineRef EE, LLVMValueRef Global)

    Defined at line 296 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • uint64_t LLVMGetGlobalValueAddress (LLVMExecutionEngineRef EE, const char * Name)

    Defined at line 302 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • uint64_t LLVMGetFunctionAddress (LLVMExecutionEngineRef EE, const char * Name)

    Defined at line 306 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • lto_module_t lto_module_create (const char * path)

    Loads an object file from disk.

    Returns NULL on error (check lto_get_error_message() for details).

    Defined at line 234 of file llvm/tools/lto/lto.cpp

  • void LLVMDisposeTargetMachine (LLVMTargetMachineRef T)

    Dispose the LLVMTargetMachineRef instance generated by

    LLVMCreateTargetMachine.

    Defined at line 229 of file llvm/lib/Target/TargetMachineC.cpp

  • void LLVMDisposeSymbolIterator (LLVMSymbolIteratorRef SI)

    ObjectFile Symbol iterators

    Defined at line 241 of file llvm/lib/Object/Object.cpp

  • void LLVMMoveToNextSymbol (LLVMSymbolIteratorRef SI)

    Defined at line 251 of file llvm/lib/Object/Object.cpp

  • LLVMTargetRef LLVMGetTargetMachineTarget (LLVMTargetMachineRef T)

    Returns the Target used in a TargetMachine

    Defined at line 231 of file llvm/lib/Target/TargetMachineC.cpp

  • const char * LLVMGetSectionName (LLVMSectionIteratorRef SI)

    SectionRef accessors

    Defined at line 256 of file llvm/lib/Object/Object.cpp

  • uint64_t LLVMGetSectionSize (LLVMSectionIteratorRef SI)

    Defined at line 263 of file llvm/lib/Object/Object.cpp

  • const char * LLVMGetSectionContents (LLVMSectionIteratorRef SI)

    Defined at line 267 of file llvm/lib/Object/Object.cpp

  • lto_module_t lto_module_create_from_memory (const void * mem, size_t length)

    Loads an object file from memory.

    Returns NULL on error (check lto_get_error_message() for details).

    Defined at line 270 of file llvm/tools/lto/lto.cpp

  • uint64_t LLVMGetSectionAddress (LLVMSectionIteratorRef SI)

    Defined at line 274 of file llvm/lib/Object/Object.cpp

  • char * LLVMGetTargetMachineTriple (LLVMTargetMachineRef T)

    Returns the triple used creating this target machine. See

    llvm::TargetMachine::getTriple. The result needs to be disposed with

    LLVMDisposeMessage.

    Defined at line 236 of file llvm/lib/Target/TargetMachineC.cpp

  • void llvm_blake3_compress_xof (const uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags, uint8_t[64] out)

    Defined at line 198 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c

  • void llvm_blake3_xof_many (const uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags, uint8_t[64] out, size_t outblocks)

    Defined at line 228 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c

  • void LLVMDisposeObjectFile (LLVMObjectFileRef ObjectFile)

    Deprecated: Use LLVMDisposeBinary instead.

    Defined at line 197 of file llvm/lib/Object/Object.cpp

  • LLVMSectionIteratorRef LLVMGetSections (LLVMObjectFileRef ObjectFile)

    Deprecated: Use LLVMObjectFileCopySectionIterator instead.

    Defined at line 202 of file llvm/lib/Object/Object.cpp

  • LLVMBool LLVMIsSectionIteratorAtEnd (LLVMObjectFileRef ObjectFile, LLVMSectionIteratorRef SI)

    Deprecated: Use LLVMObjectFileIsSectionIteratorAtEnd instead.

    Defined at line 212 of file llvm/lib/Object/Object.cpp

  • LLVMSymbolIteratorRef LLVMGetSymbols (LLVMObjectFileRef ObjectFile)

    Deprecated: Use LLVMObjectFileCopySymbolIterator instead.

    Defined at line 235 of file llvm/lib/Object/Object.cpp

  • unsigned int getNumUsedSlots (const UnwindCode & UnwindCode)

    Calculates the number of array slots required for the unwind code.

    Defined at line 236 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • template <class ELFT>
    void dumpSectionOffsets (const typename ELFT::Ehdr & Header, ArrayRef Phdrs, std::vector<std::unique_ptr<ELFYAML::Chunk>> & V, ArrayRef<typename ELFT::Shdr> S)

    Defined at line 236 of file llvm/tools/obj2yaml/elf2yaml.cpp

  • bool hasRSTRegClass (const CodeGenInstruction * Inst)

    Return true if one of the instruction's operands is a RST register class

    Defined at line 237 of file llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  • Function * getFunction (Constant * C)

    Defined at line 237 of file llvm/lib/Transforms/Utils/Evaluator.cpp

  • bool maintainPGOProfile (const TargetMachine & TM, CodeGenOptLevel OptLevel)

    Defined at line 237 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • OMPScheduleType getOpenMPMonotonicityScheduleType (OMPScheduleType ScheduleType, bool HasSimdModifier, bool HasMonotonic, bool HasNonmonotonic, bool HasOrderedClause)

    Adds monotonicity modifier flags to schedule type.

    Defined at line 237 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void reconnectPhis (BasicBlock * Out, BasicBlock * GuardBlock, ArrayRef Incoming, BasicBlock * FirstGuardBlock)

    After creating a control flow hub, the operands of PHINodes in an outgoing

    block Out no longer match the predecessors of that block. Predecessors of Out

    that are incoming blocks to the hub are now replaced by just one edge from

    the hub. To match this new control flow, the corresponding values from each

    PHINode must now be moved a new PHINode in the first guard block of the hub.

    This operation cannot be performed with SSAUpdater, because it involves one

    new use: If the block Out is in the list of Incoming blocks, then the newly

    created PHI in the Hub will use itself along that edge from Out to Hub.

    Defined at line 237 of file llvm/lib/Transforms/Utils/ControlFlowUtils.cpp

  • void addOrUpdateSectionToFileImpl (const char * YamlCreationString, function_ref IsValidFormat, StringRef NewSectionName, StringRef NewSectionData, Action SectionAction)

    Defined at line 237 of file llvm/unittests/ObjCopy/ObjCopyTest.cpp

  • bool CC_X86_32_MCUInReg (unsigned int & ValNo, MVT & ValVT, MVT & LocVT, CCValAssign::LocInfo & LocInfo, ISD::ArgFlagsTy & ArgFlags, CCState & State)

    Defined at line 237 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • void splitStaticCtorDtor (const char * GlobalName, Module * M1, Module * M2, ValueToValueMapTy & VMap)

    splitStaticCtorDtor - A module was recently split into two parts, M1/M2, and

    M1 has all of the global variables. If M2 contains any functions that are

    static ctors/dtors, we need to add an llvm.global_[cd]tors global to M2, and

    prune appropriate entries out of M1s list.

    Defined at line 237 of file llvm/tools/bugpoint/ExtractFunction.cpp

  • bool isArrayType (basic_string_view S)

    Defined at line 238 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • bool setReturnedArg (Function & F, unsigned int ArgNo)

    Defined at line 238 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • uint64_t XXH3_len_4to8_64b (const uint8_t * input, size_t len, const uint8_t * secret, uint64_t seed)

    Defined at line 238 of file llvm/lib/Support/xxhash.cpp

  • unsigned int EmitVBRValue (uint64_t Val, raw_ostream & OS)

    EmitVBRValue - Emit the specified value as a VBR, returning the number of

    bytes emitted.

    Defined at line 238 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  • bool canEmitLibcall (const LibcallLoweringModuleAnalysisResult & ModuleLowering, const TargetMachine * TM, Function * F, Libcall LC)

    Defined at line 239 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • void printBSDMemberHeader (raw_ostream & Out, uint64_t Pos, StringRef Name, const sys::TimePoint<std::chrono::seconds> & ModTime, unsigned int UID, unsigned int GID, unsigned int Perms, uint64_t Size)

    Defined at line 239 of file llvm/lib/Object/ArchiveWriter.cpp

  • void copyMustTailReturn (BasicBlock * SplitBB, Instruction * CI, Instruction * NewCI)

    Copy mandatory `musttail` return sequence that follows original `CI`, and

    link it up to `NewCI` value instead:

    * (optional) `bitcast NewCI to ...`

    * `ret bitcast or NewCI`

    Insert this sequence right before `SplitBB`'s terminator, which will be

    cleaned up later in `splitCallSite` below.

    Defined at line 239 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • basic_string encodeName (StringRef Name)

    Defined at line 239 of file llvm/lib/Transforms/Instrumentation/TypeSanitizer.cpp

  • DbgValueLoc getDebugLocValue (const MachineInstr * MI)

    Get .debug_loc entry for the instruction range starting at MI.

    Defined at line 239 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void collectInstructionsInBetween (Instruction & StartInst, const Instruction & EndInst, SmallPtrSetImpl<Instruction *> & InBetweenInsts)

    Collect all instructions in between

    and

    and store

    them in

    Defined at line 239 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp

  • void DumpInputAnnotationHelp (raw_ostream & OS)

    Defined at line 239 of file llvm/utils/FileCheck/FileCheck.cpp

  • bool isFunctionType (basic_string_view S)

    Defined at line 240 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • Expected parseV5EntryFormat (const DWARFDataExtractor & DebugLineData, uint64_t * OffsetPtr, DWARFDebugLine::ContentTypeTracker * ContentTypes)

    Parse v5 directory/file entry content descriptions.

    Returns the descriptors, or an error if we did not find a path or ran off

    the end of the prologue.

    Defined at line 240 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp

  • void runNewPMPasses (const Config & Conf, Module & Mod, TargetMachine * TM, unsigned int OptLevel, bool IsThinLTO, ModuleSummaryIndex * ExportSummary, const ModuleSummaryIndex * ImportSummary)

    Defined at line 240 of file llvm/lib/LTO/LTOBackend.cpp

  • void initializeProfileSummaryInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 241 of file llvm/lib/Analysis/ProfileSummaryInfo.cpp

  • char * LLVMGetTargetMachineCPU (LLVMTargetMachineRef T)

    Returns the cpu used creating this target machine. See

    llvm::TargetMachine::getCPU. The result needs to be disposed with

    LLVMDisposeMessage.

    Defined at line 241 of file llvm/lib/Target/TargetMachineC.cpp

  • void writeGadgetGraph (raw_ostream & OS, MachineFunction & MF, MachineGadgetGraph * G)

    Defined at line 241 of file llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp

  • void BM_Mustache_SmallTemplateParsing (benchmark::State & state)

    Tests the performance of the parser on a small, "deep" template.

    Defined at line 241 of file llvm/benchmarks/Mustache.cpp

  • bool isReInterleaveMask (ShuffleVectorInst * SVI, unsigned int & Factor, unsigned int MaxFactor)

    Check if the mask can be used in an interleaved store.

    It checks for a more general pattern than the RE-interleave mask.

    I.e.

    <x

    , y, ... z, x+1, y+1, ...z+1, x+2, y+2, ...z+2, ...>

    E.g. For a Factor of 2 (LaneLen=4):

    <

    4, 32, 5, 33, 6, 34, 7, 35>

    E.g. For a Factor of 3 (LaneLen=4):

    <

    4, 32, 16, 5, 33, 17, 6, 34, 18, 7, 35, 19>

    E.g. For a Factor of 4 (LaneLen=2):

    <

    8, 2, 12, 4, 9, 3, 13, 5>

    The particular case of an RE-interleave mask is:

    I.e.

    <

    0, LaneLen, ... , LaneLen*(Factor - 1), 1, LaneLen + 1, ...>

    E.g. For a Factor of 2 (LaneLen=4):

    <

    0, 4, 1, 5, 2, 6, 3, 7>

    Defined at line 241 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp

  • EFLAGSClobber getClobberType (const MachineInstr & MI)

    Defined at line 241 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp

  • BranchInst * findSplitCandidate (const Loop & L, ScalarEvolution & SE, ConditionInfo & ExitingCond, ConditionInfo & SplitCandidateCond)

    Defined at line 241 of file llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp

  • uint32_t getCPUType (MachOObjectFile & MachO)

    Defined at line 242 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • double statRelDiff (const GraphDiffRenderer::TimeStat & LeftStat, const GraphDiffRenderer::TimeStat & RightStat, StatType T)

    Returns the Relative change With respect to LeftStat between LeftStat

    and RightStat.

    Defined at line 242 of file llvm/tools/llvm-xray/xray-graph-diff.cpp

  • template <typename PassManagerT>
    bool tryParsePipelineText (PassBuilder & PB, const int & PipelineOpt)

    Defined at line 242 of file llvm/tools/opt/NewPMDriver.cpp

  • void fatalError (Error Err)

    Defined at line 243 of file llvm/tools/llvm-ifs/llvm-ifs.cpp

  • SecondMacroFusionInstKind classifySecondInstInMacroFusion (const MCInst & MI, const MCInstrInfo & MCII)

    Defined at line 243 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • bool MapHasRightValue (RetainedKnowledgeMap & Map, AssumeInst * II, pair Key, MinMax MM)

    Defined at line 243 of file llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp

  • void dumpRemats (StringRef Title, const SmallMapVector<Instruction *, std::unique_ptr<RematGraph>, 8> & RM)

    Defined at line 243 of file llvm/lib/Transforms/Coroutines/MaterializationUtils.cpp

  • void replaceRelativePointerUserWithZero (User * U)

    Defined at line 243 of file llvm/lib/Analysis/TypeMetadataUtils.cpp

  • Error createDirectoriesOnDemand (StringRef OutputPath, OutputConfig Config, function_ref CreateFile)

    Defined at line 243 of file llvm/lib/Support/VirtualOutputBackends.cpp

  • Expected FillMachine (PerfState & State)

    Defined at line 243 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • bool ParseLine (const StringRef & Input, LineType & LineTy, uint32_t & Depth, uint64_t & NumSamples, uint32_t & LineOffset, uint32_t & Discriminator, StringRef & CalleeName, DenseMap<StringRef, uint64_t> & TargetCountMap, DenseMap<StringRef, uint64_t> & TypeCountMap, uint64_t & FunctionHash, uint32_t & Attributes, bool & IsFlat)

    Parse

    as line sample.

    returns true if parsing is successful.

    Parameters

    Input input line.
    LineTy Type of this line.
    Depth the depth of the inline stack.
    NumSamples total samples of the line/inlined callsite.
    LineOffset line offset to the start of the function.
    Discriminator discriminator of the line.
    TargetCountMap map from indirect call target to count.
    FunctionHash the function's CFG hash, used by pseudo probe.

    Defined at line 243 of file llvm/lib/ProfileData/SampleProfReader.cpp

  • void stubifyDirectory (StringRef InputPath, Context & Ctx)

    Defined at line 243 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • bool shouldPrintInstructionTables (InstructionTablesType ITType)

    Defined at line 244 of file llvm/tools/llvm-mca/llvm-mca.cpp

  • void initializeSafepointIRVerifierPassOnce (PassRegistry & Registry)

    Defined at line 244 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • void check_value_kind (LLVMValueRef V,  K)

    Defined at line 244 of file llvm/tools/llvm-c-test/echo.cpp

  • bool hasPtrTailcallRegClass (const CodeGenInstruction * Inst)

    Return true if one of the instruction's operands is a ptr_rc_tailcall

    Defined at line 244 of file llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  • template <typename Inst>
    bool atomicSizeSupported (const TargetLowering * TLI, Inst * I)

    Determine if a particular atomic operation has a supported size,

    and is of appropriate alignment, to be passed through for target

    lowering. (Versus turning into a __atomic libcall)

    Defined at line 244 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • void dumpWeakExternal (COFFYAML::Symbol * Sym, const object::coff_aux_weak_external * ObjWE)

    Defined at line 244 of file llvm/tools/obj2yaml/coff2yaml.cpp

  • MachineOperand * salvageDebugInfoImpl (const MachineRegisterInfo & MRI, MachineInstr & MI, SmallVectorImpl<uint64_t> & Ops)

    Defined at line 244 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp

  • void * callFunc (void * param)

    Defined at line 244 of file llvm/examples/ParallelJIT/ParallelJIT.cpp

  • bool fixupBlock (MachineBasicBlock & CurrBB, const BlockFlagsVector & BlockInfo, int & InsertionPts, const InsertionPoint & Prologue)

    Fixes up the CFI instructions in a basic block to be consistent with the

    intended frame state, adding or removing CFI instructions as necessary.

    Returns true if a change was made and false otherwise.

    Defined at line 244 of file llvm/lib/CodeGen/CFIFixup.cpp

  • LLVMBool LLVMIsSymbolIteratorAtEnd (LLVMObjectFileRef ObjectFile, LLVMSymbolIteratorRef SI)

    Deprecated: Use LLVMObjectFileIsSymbolIteratorAtEnd instead.

    Defined at line 245 of file llvm/lib/Object/Object.cpp

  • FunctionRefQualifier demangleFunctionRefQualifier (std::string_view & MangledName)

    Defined at line 245 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • lto_module_t lto_module_create_from_fd (int fd, const char * path, size_t file_size)

    Loads an object file from disk. The seek point of fd is not preserved.

    Returns NULL on error (check lto_get_error_message() for details).

    Defined at line 245 of file llvm/tools/lto/lto.cpp

  • void replaceLoopInvariantUses (const Loop & L, Value * Invariant, Constant & Replacement)

    Defined at line 245 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void fixSuccessorPhis (Loop * L, Value * ScalarRes, Value * VectorRes, BasicBlock * SuccBB, BasicBlock * IncBB)

    Defined at line 245 of file llvm/lib/Transforms/Vectorize/LoopIdiomVectorize.cpp

  • OverwriteResult isMaskedStoreOverwrite (const Instruction * KillingI, const Instruction * DeadI, BatchAAResults & AA)

    Check if two instruction are masked stores that completely

    overwrite one another. More specifically,

    has to

    overwrite

    Defined at line 245 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • char * LLVMGetTargetMachineFeatureString (LLVMTargetMachineRef T)

    Returns the feature string used creating this target machine. See

    llvm::TargetMachine::getFeatureString. The result needs to be disposed with

    LLVMDisposeMessage.

    Defined at line 246 of file llvm/lib/Target/TargetMachineC.cpp

  • bool setNonLazyBind (Function & F)

    Defined at line 246 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • ErrorOr getLLVMSymbolizerPath (StringRef Argv0)

    Defined at line 246 of file llvm/lib/Support/Signals.cpp

  • bool PHIAreRefEachOther (iterator_range NewPHIs)

    New PHI nodes should not reference one another but they may reference

    themselves or existing PHI nodes, and existing PHI nodes may reference new

    PHI nodes.

    Defined at line 246 of file llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp

  • Expected<ReproducerMode> getReproducerMode (opt::InputArgList & Args)

    Defined at line 246 of file llvm/tools/dsymutil/dsymutil.cpp

  • ParseRet tryParseParameter (StringRef & ParseString, VFParamKind & PKind, int & StepOrPos)

    Looks into the

    <parameters

    > part of the mangled name in search

    for valid paramaters at the beginning of the string

    `ParseString`.

    On success, it removes the parsed parameter from `ParseString`,

    sets `PKind` to the correspondent enum value, sets `StepOrPos`

    accordingly, and return success. On a syntax error, it return a

    parsing error. If nothing is parsed, it returns std::nullopt.

    Defined at line 246 of file llvm/lib/IR/VFABIDemangler.cpp

  • optional getOpcode (ArrayRef Values)

    Returns the opcode of Values or ~0 if they do not all agree.

    Defined at line 247 of file llvm/lib/Transforms/Vectorize/VPlanSLP.cpp

  • bool willLowerDirectly (SDValue Incoming)

    Return true if-and-only-if the given SDValue can be lowered as either a

    constant argument or a stack reference. The key point is that the value

    doesn't need to be spilled or tracked as a vreg use.

    Defined at line 247 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • void findAndAddDiff (iterator_range CollectedSyms, iterator_range LookupSyms, DiffOutput & Result, InterfaceInputOrder Order)

    Defined at line 247 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • unique_ptr ParseIdentifierExpr ()

    identifierexpr

    ::= identifier

    ::= identifier '(' expression* ')'

    Defined at line 247 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • int show_main (int argc, const char *[] argv)

    Defined at line 247 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • bool shouldPrintInstructionTables ()

    Defined at line 248 of file llvm/tools/llvm-mca/llvm-mca.cpp

  • LLVMJITEventListenerRef LLVMCreateGDBRegistrationListener ()

    ===-- JIT Event Listener functions -------------------------------------===

    Defined at line 248 of file llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp

  • void fatalError (Twine T)

    Defined at line 248 of file llvm/tools/llvm-ifs/llvm-ifs.cpp

  • bool containsParameters (SmallVectorImpl<const SCEV *> & Terms)

    Returns true when one of the SCEVs of Terms contains a SCEVUnknown parameter.

    Defined at line 248 of file llvm/lib/Analysis/Delinearization.cpp

  • GenericValue executeICMP_UGT (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 248 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • void writeTraceViewerRecord (uint16_t Version, raw_ostream & OS, int32_t FuncId, uint32_t TId, uint32_t PId, bool Symbolize, const FuncIdConversionHelper & FuncIdHelper, double EventTimestampUs, const StackTrieNode & StackCursor, StringRef FunctionPhenotype)

    Defined at line 248 of file llvm/tools/llvm-xray/xray-converter.cpp

  • bool isShapePreserving (Value * V)

    Defined at line 248 of file llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

  • Error readSymbols (MachOObjectFile * Obj, RecordsSlice & Slice, const ParseOption & Opt)

    Defined at line 248 of file llvm/lib/TextAPI/BinaryReader/DylibReader.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const SinkingInstructionCandidate & C)

    Defined at line 249 of file llvm/lib/Transforms/Scalar/GVNSink.cpp

  • basic_string getExecutablePath (const char * Argv0)

    Compute the path to the main executable.

    Defined at line 249 of file llvm/tools/llvm-config/llvm-config.cpp

  • size_t getMaxLeafCount (const DirectiveLanguage & DirLang)

    Count the maximum number of leaf constituents per construct.

    Defined at line 249 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • bool isAlignmentPreservedForAddrCast (const Triple & TargetTriple)

    isAlignmentPreservedForAddrCast - Return true if the cast operation

    for specified target preserves original alignment

    Defined at line 249 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • bool isGCPointerType (Type * T)

    Defined at line 250 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • void check (Error E, basic_string Msg)

    Defined at line 250 of file llvm/tools/llvm-lto2/llvm-lto2.cpp

  • bool canEmitMemcpy (const LibcallLoweringModuleAnalysisResult & ModuleLowering, const TargetMachine * TM, Function * F)

    Defined at line 250 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • bool isRIPRelative (const MCInst & MI, const MCInstrInfo & MCII)

    Check if the instruction uses RIP relative addressing.

    Defined at line 250 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • BinaryOperator * CreateAdd (Value * S1, Value * S2, const Twine & Name, ilist_iterator_w_bits InsertBefore, Value * FlagsOp)

    Defined at line 250 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • bool mayFoldFromForm (uint8_t Form)

    Defined at line 250 of file llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  • bool filterArch (MachOObjectFile & Obj)

    Return true if the object file has not been filtered by an --arch option.

    Defined at line 250 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • Expected<SectionFlagsUpdate> parseSetSectionFlagValue (StringRef FlagValue)

    Defined at line 250 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • Value * simplifyAssociativeBinOp (BinaryOps Opcode, Value * LHS, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Generic simplifications for associative binary operations.

    Returns the simpler value, or null if none was found.

    Defined at line 250 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • int cloneMF (MachineFunction * SrcMF, MachineModuleInfo & DestMMI)

    Defined at line 250 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • void initializeDebugInfoDropPassOnce (PassRegistry & Registry)

    Defined at line 251 of file llvm/unittests/Transforms/Utils/DebugifyTest.cpp

  • void LLVMSetTargetMachineAsmVerbosity (LLVMTargetMachineRef T, LLVMBool VerboseAsm)

    Set the target machine's ASM verbosity.

    Defined at line 251 of file llvm/lib/Target/TargetMachineC.cpp

  • LLVMValueRef clone_constant (LLVMValueRef Cst, LLVMModuleRef M)

    Defined at line 251 of file llvm/tools/llvm-c-test/echo.cpp

  • void printCustomRegMask (const uint32_t * RegMask, raw_ostream & OS, const TargetRegisterInfo * TRI)

    Defined at line 251 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • basic_string getColor (const GraphDiffRenderer::GraphT::EdgeValueType & E, const GraphDiffRenderer::GraphT & G, ColorHelper H, StatType T)

    Defined at line 251 of file llvm/tools/llvm-xray/xray-graph-diff.cpp

  • Constant * rebuildSplatCst (const Constant * C, unsigned int , unsigned int , unsigned int SplatBitWidth)

    Attempt to rebuild a normalized splat vector constant of the requested splat

    width, built up of potentially smaller scalar values.

    Defined at line 251 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • Error processRemark (const remarks::Remark & Remark, StringMap<InstCountAndStackSize> & FuncNameToSizeInfo, unsigned int & NumInstCountRemarksParsed)

    Collects relevant size information from

    if it is an size-related

    remark of some kind (e.g. instruction count). Otherwise records nothing.

    - The remark.

    - Maps function names to relevant size info.

    - Keeps track of the number of instruction

    count remarks parsed. We need at least 1 in both files to produce a diff.

    Defined at line 251 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • void createThunk (FuncMergeInfo & FI, ArrayRef Params, Function * ToFunc)

    Given the original function (Thunk) and the merged function (ToFunc), create

    a thunk to the merged function.

    Defined at line 251 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • Error addAllTypesFromTypesSection (MCStreamer & Out, MapVector<uint64_t, UnitIndexEntry> & TypeIndexEntries, MCSection * OutputTypes, const std::vector<StringRef> & TypesSections, const UnitIndexEntry & CUEntry, uint32_t & TypesOffset, OnCuIndexOverflow OverflowOptValue, bool & AnySectionOverflow)

    Defined at line 251 of file llvm/lib/DWP/DWP.cpp

  • Error checkRecord (const IHexRecord & R)

    Defined at line 251 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • void llvm_blake3_hash_many (const uint8_t *const * inputs, size_t num_inputs, size_t blocks, const uint32_t[8] key, uint64_t counter, _Bool increment_counter, uint8_t flags, uint8_t flags_start, uint8_t flags_end, uint8_t * out)

    Defined at line 251 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c

  • void bindingsErrorHandler (void * user_data, const char * reason, bool gen_crash_diag)

    Defined at line 252 of file llvm/lib/Support/ErrorHandling.cpp

  • bool isGCPointerType (Type * T, GCStrategy * GC)

    Defined at line 252 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void UnescapeString (std::string & Str)

    Defined at line 252 of file llvm/utils/TableGen/AsmWriterEmitter.cpp

  • bool setDoesNotFreeMemory (Function & F)

    Defined at line 253 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • const llvm::AArch64::ExtensionInfo & lookupExtensionByID (ArchExtKind ExtID)

    Defined at line 253 of file llvm/lib/TargetParser/AArch64TargetParser.cpp

  • bool isValidElementType (Type * Ty)

    Predicate for the element types that the SLP vectorizer supports.

    The most important thing to filter here are types which are invalid in LLVM

    vectors. We also filter target specific types which have absolutely no

    meaningful vectorization path such as x86_fp80 and ppc_f128. This just

    avoids spending time checking the cost model and realizing that they will

    be inevitably scalarized.

    Defined at line 253 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool runImpl (LoopInfo & LI, DominatorTree & DT)

    Defined at line 253 of file llvm/lib/Transforms/Utils/UnifyLoopExits.cpp

  • void dumpSectionDefinition (COFFYAML::Symbol * Sym, const object::coff_aux_section_definition * ObjSD, bool IsBigObj)

    Defined at line 253 of file llvm/tools/obj2yaml/coff2yaml.cpp

  • Error checkOverlappingElement (std::list<MachOElement> & Elements, uint64_t Offset, uint64_t Size, const char * Name)

    Defined at line 253 of file llvm/lib/Object/MachOObjectFile.cpp

  • bool isValidIndirectionTable (GlobalVariable * IndirectionTable)

    Defined at line 253 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • void formatTypeName (SmallString<64> & Dest, StringRef Name, bool IsWriteable, bool IsROV, Type * ContainedType, bool IsSigned)

    Defined at line 253 of file llvm/lib/Analysis/DXILResource.cpp

  • bool isConstantOne (const Value * Val)

    isConstantOne - Return true only if val is constant int 1

    Defined at line 254 of file llvm/lib/IR/IRBuilder.cpp

  • basic_string toString (LLVMErrorRef E)

    Consumes the given error ref and returns the string error message.

    Defined at line 254 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • ErrorOr getMemoryBufferForStream (sys::fs::file_t FD, const Twine & BufferName)

    Defined at line 254 of file llvm/lib/Support/MemoryBuffer.cpp

  • void genShuffleBland (MVT VT, ArrayRef<int> Mask, SmallVectorImpl<int> & Out, int LowOffset, int HighOffset)

    genShuffleBland - Creates shuffle according to two vectors.This function is

    only works on instructions with lane inside 256 registers. According to

    the mask 'Mask' creates a new Mask 'Out' by the offset of the mask. The

    offset amount depends on the two integer, 'LowOffset' and 'HighOffset'.

    Where the 'LowOffset' refers to the first vector and the highOffset refers to

    the second vector.

    |a0....a5,b0....b4,c0....c4|a16..a21,b16..b20,c16..c20|

    |c5...c10,a5....a9,b5....b9|c21..c26,a22..a26,b21..b25|

    |b10..b15,c11..c15,a10..a15|b26..b31,c27..c31,a27..a31|

    For the sequence to work as a mirror to the load.

    We must consider the elements order as above.

    In this function we are combining two types of shuffles.

    The first one is vpshufed and the second is a type of "blend" shuffle.

    By computing the shuffle on a sequence of 16 elements(one lane) and add the

    correct offset. We are creating a vpsuffed + blend sequence between two

    shuffles.

    Defined at line 254 of file llvm/lib/Target/X86/X86InterleavedAccess.cpp

  • bool isOnlyUsedInComparisonWithZero (Value * V)

    Defined at line 254 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void BM_Mustache_PartialsRendering (benchmark::State & state)

    Tests the performance of rendering a template that includes a partial.

    Defined at line 254 of file llvm/benchmarks/Mustache.cpp

  • Register isCopyOf (const MachineInstr & MI, Register Reg, const TargetInstrInfo & TII)

    isFullCopyOf - If MI is a COPY to or from Reg, return the other register,

    otherwise return 0.

    Defined at line 254 of file llvm/lib/CodeGen/InlineSpiller.cpp

  • pair demanglePointerCVQualifiers (std::string_view & MangledName)

    Defined at line 254 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • Value * getParentPad (Value * EHPad)

    Helper for getUnwindDestToken/getUnwindDestTokenHelper.

    Defined at line 255 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void AntiDepEdges (const SUnit * SU, int & Edges)

    AntiDepEdges - Return in Edges the anti- and output- dependencies

    in SU that we want to consider for breaking.

    Defined at line 255 of file llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp

  • bool hasDebugInfo (const MachineFunction * MF)

    Defined at line 255 of file llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp

  • uint64_t XXH3_len_9to16_64b (const uint8_t * input, size_t len, const uint8_t * secret, const uint64_t seed)

    Defined at line 255 of file llvm/lib/Support/xxhash.cpp

  • Error validateInProcess (StringRef RootPath, StringRef HashName, unsigned int HashByteSize, bool CheckHash)

    Defined at line 255 of file llvm/lib/CAS/UnifiedOnDiskCache.cpp

  • Value * getMatchingValue (LoadValue LV, LoadInst * LI, unsigned int CurrentGeneration, BatchAAResults & BAA, function_ref GetMSSA)

    Defined at line 255 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • SourcePred matchScalarInAggregate ()

    Defined at line 255 of file llvm/lib/FuzzMutate/Operations.cpp

  • void printBigArchiveMemberHeader (raw_ostream & Out, StringRef Name, const sys::TimePoint<std::chrono::seconds> & ModTime, unsigned int UID, unsigned int GID, unsigned int Perms, uint64_t Size, uint64_t PrevOffset, uint64_t NextOffset)

    Defined at line 255 of file llvm/lib/Object/ArchiveWriter.cpp

  • Error writeIFS (StringRef FilePath, IFSStub & Stub, bool WriteIfChanged)

    writeIFS() writes a Text-Based ELF stub to a file using the latest version

    of the YAML parser.

    Defined at line 255 of file llvm/tools/llvm-ifs/llvm-ifs.cpp

  • bool processPHI (PHINode * P, LazyValueInfo * LVI, DominatorTree * DT, const SimplifyQuery & SQ)

    Defined at line 255 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void LLVMSetTargetMachineFastISel (LLVMTargetMachineRef T, LLVMBool Enable)

    Enable fast-path instruction selection.

    Defined at line 256 of file llvm/lib/Target/TargetMachineC.cpp

  • void initializeDebugInfoDummyAnalysisPassOnce (PassRegistry & Registry)

    Defined at line 256 of file llvm/unittests/Transforms/Utils/DebugifyTest.cpp

  • Error createSpecFormatError (Twine Format)

    Defined at line 256 of file llvm/lib/IR/DataLayout.cpp

  • void initializeMachineUniformityInfoPrinterPassPassOnce (PassRegistry & Registry)

    Defined at line 256 of file llvm/lib/CodeGen/MachineUniformityAnalysis.cpp

  • SDValue emitRepmovsB (const X86Subtarget & Subtarget, SelectionDAG & DAG, const SDLoc & dl, SDValue Chain, SDValue Dst, SDValue Src, uint64_t Size)

    Emit a single REP MOVSB instruction for a particular constant size.

    Defined at line 256 of file llvm/lib/Target/X86/X86SelectionDAGInfo.cpp

  • int openBuffer (StringRef DataPath)

    Defined at line 256 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • Value * getMaskOperand (IntrinsicInst * II)

    Defined at line 256 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp

  • lto_module_t lto_module_create_from_fd_at_offset (int fd, const char * path, size_t file_size, size_t map_size, off_t offset)

    Loads an object file from disk. The seek point of fd is not preserved.

    Returns NULL on error (check lto_get_error_message() for details).

    Defined at line 256 of file llvm/tools/lto/lto.cpp

  • void getMaxByValAlign (Type * Ty, Align & MaxAlign)

    Helper for getByValTypeAlignment to determine

    the desired ByVal argument alignment.

    Defined at line 256 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • bool areLoadsReorderable (const LoadInst * Use, const LoadInst * MayClobber)

    This does one-way checks to see if Use could theoretically be hoisted above

    MayClobber. This will not check the other way around.

    This assumes that, for the purposes of MemorySSA, Use comes directly after

    MayClobber, with no potentially clobbering operations in between them.

    (Where potentially clobbering ops are memory barriers, aliased stores, etc.)

    Defined at line 256 of file llvm/lib/Analysis/MemorySSA.cpp

  • void ConnectEpilog (Loop * L, Value * ModVal, BasicBlock * NewExit, BasicBlock * Exit, BasicBlock * PreHeader, BasicBlock * EpilogPreHeader, BasicBlock * NewPreHeader, ValueToValueMapTy & VMap, DominatorTree * DT, LoopInfo * LI, bool PreserveLCSSA, ScalarEvolution & SE, unsigned int Count, AssumptionCache & AC, BranchProbability OriginalLoopProb)

    Connect the unrolling epilog code to the original loop.

    The unrolling epilog code contains code to execute the

    'extra' iterations if the run-time trip count modulo the

    unroll count is non-zero.

    This function performs the following:

    - Update PHI nodes at the epilog loop exit

    - Create PHI nodes at the unrolling loop exit and epilog preheader to

    combine values that exit the unrolling loop code and jump around it.

    - Update PHI operands in the epilog loop by the new PHI nodes

    - At the unrolling loop exit, branch around the epilog loop if extra iters

    (ModVal) is zero.

    - At the epilog preheader, add an llvm.assume call that extra iters is

    non-zero. If the unrolling loop exit is the predecessor, the above new

    branch guarantees that assumption. If the unrolling loop preheader is the

    predecessor, then the required first iteration from the original loop has

    yet to be executed, so it must be executed in the epilog loop. If we

    later unroll the epilog loop, that llvm.assume call somehow enables

    ScalarEvolution to compute a epilog loop maximum trip count, which enables

    eliminating the branch at the end of the final unrolled epilog iteration.

    Defined at line 256 of file llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp

  • void emitOptionParser (const RecordKeeper & Records, raw_ostream & OS)

    OptionParserEmitter - This tablegen backend takes an input .td file

    describing a list of options and emits a data structure for parsing and

    working with those options when given an input command line.

    Defined at line 256 of file llvm/utils/TableGen/OptionParserEmitter.cpp

  • void initializeGCMachineCodeAnalysisPassOnce (PassRegistry & Registry)

    Defined at line 257 of file llvm/lib/CodeGen/GCRootLowering.cpp

  • void resolveRelativeObjectPath (SmallVectorImpl<char> & Buf, DWARFDie CU)

    Resolve the relative path to a build artifact referenced by DWARF by

    applying DW_AT_comp_dir.

    Defined at line 257 of file llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp

  • int numberOfTerms (const SCEV * S)

    Return the number of product terms in S.

    Defined at line 257 of file llvm/lib/Analysis/Delinearization.cpp

  • unsigned int getVectorRegSize (MCRegister Reg)

    Defined at line 257 of file llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp

  • LLVMValueRef clone_constant_impl (LLVMValueRef Cst, LLVMModuleRef M)

    Defined at line 257 of file llvm/tools/llvm-c-test/echo.cpp

  • bool isAArch64MappingSymbol (const Symbol & Sym)

    Defined at line 258 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • OpenFlags generateFlagsFromConfig (OutputConfig Config)

    Defined at line 258 of file llvm/lib/Support/VirtualOutputBackends.cpp

  • bool areConsecutiveOrMatch (VPInstruction * A, VPInstruction * B, VPInterleavedAccessInfo & IAI)

    Returns true if A and B access sequential memory if they are loads or

    stores or if they have identical opcodes otherwise.

    Defined at line 258 of file llvm/lib/Transforms/Vectorize/VPlanSLP.cpp

  • vector getAllDyLibComponents (const bool IsInDevelopmentTree, const bool GetComponentNames, const std::string & DirSep)

    Expand the semi-colon delimited LLVM_DYLIB_COMPONENTS into

    the full list of components.

    Defined at line 258 of file llvm/tools/llvm-config/llvm-config.cpp

  • bool foldAnyOrAllBitsSet (Instruction & I)

    Match patterns that correspond to "any-bits-set" and "all-bits-set".

    These will include a chain of 'or' or 'and'-shifted bits from a

    common source value:

    and (or (lshr X, C), ...), 1 --> (X

    &

    CMask) != 0

    and (and (lshr X, C), ...), 1 --> (X

    &

    CMask) == CMask

    Note: "any-bits-clear" and "all-bits-clear" are variations of these patterns

    that differ only with a final 'not' of the result. We expect that final

    'not' to be folded with the compare that we create here (invert predicate).

    Defined at line 258 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • void emitDirectivesDecl (const RecordKeeper & Records, raw_ostream & OS)

    Generate the declaration section for the enumeration in the directive

    language.

    Defined at line 258 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • template <typename T>
    T check (Expected<T> E, basic_string Msg)

    Defined at line 259 of file llvm/tools/llvm-lto2/llvm-lto2.cpp

  • bool containsGCPtrType (Type * Ty)

    Defined at line 259 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • void emitGetInstructionIndexForOpLookup (raw_ostream & OS, const int & OperandMap, ArrayRef<unsigned int> InstructionIndex)

    Defined at line 259 of file llvm/utils/TableGen/InstrInfoEmitter.cpp

  • void TestFunctionInfoEncodeDecode (endianness ByteOrder, const FunctionInfo & FI)

    Defined at line 259 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • uint32_t getAlignment (const MCSectionCOFF & Sec)

    Defined at line 259 of file llvm/lib/MC/WinCOFFObjectWriter.cpp

  • void initializeGlobalMergePassOnce (PassRegistry & Registry)

    Defined at line 260 of file llvm/lib/CodeGen/GlobalMerge.cpp

  • void initializeTestPassPassOnce (PassRegistry & Registry)

    Defined at line 260 of file llvm/unittests/MI/LiveIntervalTest.cpp

  • void LLVMSetTargetMachineGlobalISel (LLVMTargetMachineRef T, LLVMBool Enable)

    Enable global instruction selection.

    Defined at line 260 of file llvm/lib/Target/TargetMachineC.cpp

  • void initializeTwoAddressInstructionLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 260 of file llvm/lib/CodeGen/TwoAddressInstructionPass.cpp

  • void initializeInferAddressSpacesPassOnce (PassRegistry & Registry)

    Defined at line 260 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • void initializeCanonicalizeFreezeInLoopsPassOnce (PassRegistry & Registry)

    Defined at line 260 of file llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp

  • void initializeStaticDataSplitterPassOnce (PassRegistry & Registry)

    Defined at line 260 of file llvm/lib/CodeGen/StaticDataSplitter.cpp

  • bool setWillReturn (Function & F)

    Defined at line 260 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void initializeVirtRegRewriterLegacyPassOnce (PassRegistry & Registry)

    Defined at line 260 of file llvm/lib/CodeGen/VirtRegMap.cpp

  • const CodeGenInstruction * GetInstByName (StringRef Name, const int & Insts, const RecordKeeper & Records)

    Defined at line 260 of file llvm/utils/TableGen/Common/CodeGenTarget.cpp

  • bool cannotHoistOrSinkRecipe (const VPRecipeBase & R)

    Return true if we do not know how to (mechanically) hoist or sink

    out

    of a loop region.

    Defined at line 260 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • template <typename FatArchTy>
    Expected<SmallVector<FatArchTy, 2>> buildFatArchList (ArrayRef Slices)

    Defined at line 260 of file llvm/lib/Object/MachOUniversalWriter.cpp

  • void assignSections (MachineFunction & MF, const int & FuncClusterInfo)

    This function sorts basic blocks according to the cluster's information.

    All explicitly specified clusters of basic blocks will be ordered

    accordingly. All non-specified BBs go into a separate "Cold" section.

    Additionally, if exception handling landing pads end up in more than one

    clusters, they are moved into a single "Exception" section. Eventually,

    clusters are ordered in increasing order of their IDs, with the "Exception"

    and "Cold" succeeding all other clusters.

    FuncClusterInfo represents the cluster information for basic blocks. It

    maps from BBID of basic blocks to their cluster information.

    Defined at line 260 of file llvm/lib/CodeGen/BasicBlockSections.cpp

  • void printUnwindCode (ArrayRef UCs, bool & SeenFirstEpilog)

    Prints one unwind code. Because an unwind code can occupy up to 3 slots in

    the unwind codes array, this function requires that the correct number of

    slots is provided.

    Defined at line 260 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • unsigned int parseSectionFlags (const Triple & TT, StringRef flagsStr, bool * UseLastGroup)

    Defined at line 260 of file llvm/lib/MC/MCParser/ELFAsmParser.cpp

  • void registerEPCallbacks (PassBuilder & PB)

    If one of the EPPipeline command line options was given, register callbacks

    for parsing and inserting the given pipeline

    Defined at line 260 of file llvm/tools/opt/NewPMDriver.cpp

  • uint64_t getDwoId (const DWARFDie & CUDie)

    Defined at line 261 of file llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp

  • unsigned int EmitSignedVBRValue (uint64_t Val, raw_ostream & OS)

    Emit the specified signed value as a VBR. To improve compression we encode

    positive numbers shifted left by 1 and negative numbers negated and shifted

    left by 1 with bit 0 set.

    Defined at line 261 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  • unsigned int getYMMtoXMMStoreOpcode (unsigned int StoreOpcode)

    Defined at line 261 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • Expected hasObjCCategoryInModule (BitstreamCursor & Stream)

    Defined at line 261 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Expected writeDIE (const DWARFYAML::Data & DI, uint64_t CUIndex, uint64_t AbbrevTableID, const dwarf::FormParams & Params, const DWARFYAML::Entry & Entry, raw_ostream & OS, bool IsLittleEndian)

    Defined at line 261 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • bool replaceIfIdentical (PHINode & PHI, PHINode & ReplPHI)

    Defined at line 262 of file llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp

  • Error parseAddrSpace (StringRef Str, unsigned int & AddrSpace)

    Attempts to parse an address space component of a specification.

    Defined at line 262 of file llvm/lib/IR/DataLayout.cpp

  • GenericValue executeICMP_SGT (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 262 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • bool areLoopExitPHIsLoopInvariant (const Loop & L, const BasicBlock & ExitingBB, const BasicBlock & ExitBB)

    Check that all the LCSSA PHI nodes in the loop exit block have trivial

    incoming values along this edge.

    Defined at line 262 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • StringRef getPrettyScopeName (const DIScope * Scope)

    Defined at line 262 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • bool tryFoldCommutativeMathWithArgInBetween (uint64_t Const1, ArrayRef Ops, uint64_t & Loc, DIExpressionCursor & Cursor, SmallVectorImpl<uint64_t> & WorkingOps)

    {DW_OP_constu, Const1, DW_OP_[plus, mul], DW_OP_LLVM_arg, Arg1,

    DW_OP_[plus, mul], DW_OP_constu, Const2, DW_OP_[plus, mul]} ->

    {DW_OP_constu, Const1 [+, *] Const2, DW_OP_[plus, mul], DW_OP_LLVM_arg,

    Arg1, DW_OP_[plus, mul]}

    Defined at line 262 of file llvm/lib/IR/DIExpressionOptimizer.cpp

  • bool printSymbolizedStackTrace (StringRef Argv0, void ** StackTrace, int Depth, llvm::raw_ostream & OS)

    Helper that launches llvm-symbolizer and symbolizes a backtrace.

    Defined at line 262 of file llvm/lib/Support/Signals.cpp

  • uint64_t calculateOverlap (DWARFAddressRange A, DWARFAddressRange B)

    Return the number of bytes in the overlap of ranges A and B.

    Defined at line 263 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • AllocFnKind getAllocFnKind (const Value * V)

    Defined at line 263 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • BinaryOperator * CreateMul (Value * S1, Value * S2, const Twine & Name, ilist_iterator_w_bits InsertBefore, Value * FlagsOp)

    Defined at line 263 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • pair walkToAllocaAndPrependOffsetDeref (const DataLayout & DL, Value * Start, DIExpression * Expression)

    Walk backwards along constant GEPs and bitcasts to the base storage from

    as far as possible. Prepend

    with the offset and append it

    with a DW_OP_deref that haes been implicit until now. Returns the walked-to

    value and modified expression.

    Defined at line 263 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • StackDuration mergeStackDuration (const StackDuration & Left, const StackDuration & Right)

    Defined at line 263 of file llvm/tools/llvm-xray/xray-stacks.cpp

  • bool isCallerPreservedOrConstPhysReg (MCRegister Reg, const MachineOperand & MO, const MachineFunction & MF, const TargetRegisterInfo & TRI, const TargetInstrInfo & TII)

    Defined at line 263 of file llvm/lib/CodeGen/MachineCSE.cpp

  • const SCEV * removeConstantFactors (ScalarEvolution & SE, const SCEV * T)

    Defined at line 263 of file llvm/lib/Analysis/Delinearization.cpp

  • basic_string computeAMDDataLayout (const Triple & TT)

    Defined at line 263 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • const Target * GetTarget (const char * ProgName)

    Defined at line 263 of file llvm/tools/llvm-mc/llvm-mc.cpp

  • bool isPrefix (unsigned int Opcode, const MCInstrInfo & MCII)

    Check if the instruction is a prefix.

    Defined at line 264 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • void dumpMapping (const ValueMapping & VM)

    Defined at line 264 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • bool getLabelOffset (const MCAssembler & Asm, const MCSymbol & S, bool ReportError, uint64_t & Val)

    Simple getSymbolOffset helper for the non-variable case.

    Defined at line 264 of file llvm/lib/MC/MCAssembler.cpp

  • void LLVMSetTargetMachineGlobalISelAbort (LLVMTargetMachineRef T,  Mode)

    Set abort behaviour when global instruction selection fails to lower/select

    an instruction.

    Defined at line 264 of file llvm/lib/Target/TargetMachineC.cpp

  • Constant * getMemSetPattern16Value (MemSetPatternInst * Inst, const TargetLibraryInfo & TLI)

    Return a value appropriate for use with the memset_pattern16 libcall, if

    possible and if we know how. (Adapted from equivalent helper in

    LoopIdiomRecognize).

    Defined at line 264 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • std::optional<FloatingPointIV> maybeFloatingPointRecurrence (Loop * L, PHINode * PN)

    Analyze a PN to determine whether it represents a simple floating-point

    induction variable, with constant fp init, increment, and exit values.

    Returns a FloatingPointIV struct if matched, std::nullopt otherwise.

    Defined at line 264 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • bool writeReport (LocationInfoTy & LocationInfo)

    Defined at line 264 of file llvm/tools/llvm-opt-report/OptReport.cpp

  • void emitRiscvTargetDef (const RecordKeeper & RK, raw_ostream & OS)

    Defined at line 265 of file llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  • void handlePointer (ArrayRef Content, SmallVectorImpl<TiReference> & Refs)

    Defined at line 265 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • Type * getValueType (Value * V)

    Returns the type of the given value/instruction

    If it is store,

    returns the type of its value operand, for Cmp - the types of the compare

    operands and for insertelement - the type os the inserted operand.

    Otherwise, just the type of the value is returned.

    Defined at line 265 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • template <typename T>
    DiffOutput recordDifferences (T LHS, T RHS, basic_string Attr)

    Defined at line 265 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • void remarkProperty (OptimizationRemarkEmitter & ORE, const Function & F, StringRef Name, int64_t Value)

    Defined at line 265 of file llvm/lib/Analysis/KernelInfo.cpp

  • bool mayFoldToForm (uint8_t Form)

    Defined at line 265 of file llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  • bool mergeIntoSinglePredecessor_v1 (Function & F)

    Merge basic blocks into their single predecessor, if their predecessor has a

    single successor. This is the first version and does not preserve the

    DominatorTree.

    Defined at line 265 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • int getSymbolNameOffset (CVRecord Sym)

    Defined at line 265 of file llvm/lib/DebugInfo/CodeView/RecordName.cpp

  • vector predictUseListOrder (const Module & M)

    Defined at line 265 of file llvm/lib/Bitcode/Writer/ValueEnumerator.cpp

  • Value * getUnwindDestTokenHelper (Instruction * EHPad, UnwindDestMemoTy & MemoMap)

    Helper for getUnwindDestToken that does the descendant-ward part of

    the search.

    Defined at line 265 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void check (error_code EC, basic_string Msg)

    Defined at line 266 of file llvm/tools/llvm-lto2/llvm-lto2.cpp

  • void getRelPos ()

    Extract the member filename from the command line for the [relpos] argument

    associated with a, b, and i modifiers

    Defined at line 266 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool isHandledGCPointerType (Type * T, GCStrategy * GC)

    Return true if this type is one which a) is a gc pointer or contains a GC

    pointer and b) is of a type this code expects to encounter as a live value.

    (The insertion code will assert that a type which matches (a) and not (b)

    is not encountered.)

    Defined at line 266 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool canTransformToMemCmp (CallInst * CI, Value * Str, uint64_t Len, const DataLayout & DL)

    Defined at line 266 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • Expected<DWARFVerify> getVerifyKind (opt::InputArgList & Args)

    Defined at line 266 of file llvm/tools/dsymutil/dsymutil.cpp

  • void checkDuplicateCPUFeatures (StringRef CPUName, ArrayRef Features, ArrayRef TuneFeatures)

    Defined at line 266 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • Error loadFDRLog (StringRef Data, bool IsLittleEndian, XRayFileHeader & FileHeader, std::vector<XRayRecord> & Records)

    Reads a log in FDR mode for version 1 of this binary format. FDR mode is

    defined as part of the compiler-rt project in xray_fdr_logging.h, and such

    a log consists of the familiar 32 bit XRayHeader, followed by sequences of

    of interspersed 16 byte Metadata Records and 8 byte Function Records.

    The following is an attempt to document the grammar of the format, which is

    parsed by this function for little-endian machines. Since the format makes

    use of BitFields, when we support big-endian architectures, we will need to

    adjust not only the endianness parameter to llvm's RecordExtractor, but also

    the bit twiddling logic, which is consistent with the little-endian

    convention that BitFields within a struct will first be packed into the

    least significant bits the address they belong to.

    We expect a format complying with the grammar in the following pseudo-EBNF

    in Version 1 of the FDR log.

    FDRLog: XRayFileHeader ThreadBuffer*

    XRayFileHeader: 32 bytes to identify the log as FDR with machine metadata.

    Includes BufferSize

    ThreadBuffer: NewBuffer WallClockTime NewCPUId FunctionSequence EOB

    BufSize: 8 byte unsigned integer indicating how large the buffer is.

    NewBuffer: 16 byte metadata record with Thread Id.

    WallClockTime: 16 byte metadata record with human readable time.

    Pid: 16 byte metadata record with Pid

    NewCPUId: 16 byte metadata record with CPUId and a 64 bit TSC reading.

    EOB: 16 byte record in a thread buffer plus mem garbage to fill BufSize.

    FunctionSequence: NewCPUId | TSCWrap | FunctionRecord

    TSCWrap: 16 byte metadata record with a full 64 bit TSC reading.

    FunctionRecord: 8 byte record with FunctionId, entry/exit, and TSC delta.

    In Version 2, we make the following changes:

    ThreadBuffer: BufferExtents NewBuffer WallClockTime NewCPUId

    FunctionSequence

    BufferExtents: 16 byte metdata record describing how many usable bytes are

    in the buffer. This is measured from the start of the buffer

    and must always be at least 48 (bytes).

    In Version 3, we make the following changes:

    ThreadBuffer: BufferExtents NewBuffer WallClockTime Pid NewCPUId

    FunctionSequence

    EOB: *deprecated*

    In Version 4, we make the following changes:

    CustomEventRecord now includes the CPU data.

    In Version 5, we make the following changes:

    CustomEventRecord and TypedEventRecord now use TSC delta encoding similar to

    what FunctionRecord instances use, and we no longer need to include the CPU

    id in the CustomEventRecord.

    Defined at line 266 of file llvm/lib/XRay/Trace.cpp

  • bool HasAddressTaken (const Instruction * AI, TypeSize AllocSize, Module * M, int & VisitedPHIs)

    Check whether a stack allocation has its address taken.

    Defined at line 266 of file llvm/lib/CodeGen/StackProtector.cpp

  • hash_code hashPartialMapping (unsigned int StartIdx, unsigned int Length, const RegisterBank * RegBank)

    Hashing function for PartialMapping.

    Defined at line 267 of file llvm/lib/CodeGen/RegisterBankInfo.cpp

  • Type * getPtrOrVecOfPtrsWithNewAS (Type * Ty, unsigned int NewAddrSpace)

    Defined at line 267 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • uint64_t GetTotalNumChildren (const InlineInfo & II)

    Defined at line 267 of file llvm/lib/DebugInfo/GSYM/InlineInfo.cpp

  • bool enablePostRAScheduler (const TargetSubtargetInfo & ST, CodeGenOptLevel OptLevel)

    Defined at line 267 of file llvm/lib/CodeGen/PostRASchedulerList.cpp

  • const SUnit * CriticalPathStep (const SUnit * SU)

    CriticalPathStep - Return the next SUnit after SU on the bottom-up

    critical path.

    Defined at line 267 of file llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp

  • SDValue emitConstantSizeRepmov (SelectionDAG & DAG, const X86Subtarget & Subtarget, const SDLoc & dl, SDValue Chain, SDValue Dst, SDValue Src, uint64_t Size, EVT SizeVT, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo)

    Returns a REP MOVS instruction, possibly with a few load/stores to implement

    a constant size memory copy. In some cases where we know REP MOVS is

    inefficient we return an empty SDValue so the calling code can either

    generate a load/store sequence or call the runtime memcpy function.

    Defined at line 267 of file llvm/lib/Target/X86/X86SelectionDAGInfo.cpp

  • void PrintPercent (int64_t Num, int64_t Sum)

    Defined at line 268 of file llvm/lib/Analysis/AliasAnalysisEvaluator.cpp

  • bool setAlignedAllocParam (Function & F, unsigned int ArgNo)

    Defined at line 268 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool isArmMappingSymbol (const Symbol & Sym)

    Defined at line 268 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • uint64_t XXH3_len_0to16_64b (const uint8_t * input, size_t len, const uint8_t * secret, const uint64_t seed)

    Defined at line 268 of file llvm/lib/Support/xxhash.cpp

  • void reservePreviousStackSlotForValue (const Value * IncomingValue, SelectionDAGBuilder & Builder)

    Try to find existing copies of the incoming values in stack slots used for

    statepoint spilling. If we can find a spill slot for the incoming value,

    mark that slot as allocated, and reuse the same slot for this safepoint.

    This helps to avoid series of loads and stores that only serve to reshuffle

    values on the stack between calls.

    Defined at line 268 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • void initializeSinkingLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 269 of file llvm/lib/Transforms/Scalar/Sink.cpp

  • bool isFirstMacroFusibleInst (const MCInst & Inst, const MCInstrInfo & MCII)

    Check if the instruction is valid as the first instruction in macro fusion.

    Defined at line 269 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • void dumpCLRTokenDefinition (COFFYAML::Symbol * Sym, const object::coff_aux_clr_token * ObjCLRToken)

    Defined at line 269 of file llvm/tools/obj2yaml/coff2yaml.cpp

  • StringRef getGlobalTypeString (const GlobalValue & G)

    Defined at line 269 of file llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp

  • bool isTileRegister (MachineRegisterInfo * MRI, Register Reg)

    Defined at line 269 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp

  • basic_string remapPath (StringRef Path, const int & ObjectPrefixMap)

    Defined at line 269 of file llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp

  • bool mayBeVisibleThroughUnwinding (Value * V, Instruction * Start, Instruction * End)

    Check that V is either not accessible by the caller, or unwinding cannot

    occur between Start and End.

    Defined at line 269 of file llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

  • Error makeStringError (const char * Msg)

    Defined at line 270 of file llvm/lib/IR/InlineAsm.cpp

  • basic_string getScopedName (unsigned int Scope, const std::string & Name)

    Defined at line 270 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • unsigned int getRegOperandNumElts (const MCInst * MI, unsigned int ScalarSize, unsigned int OperandIndex)

    Defined at line 270 of file llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp

  • void printRegClassOrBank (Register Reg, yaml::StringValue & Dest, const MachineRegisterInfo & RegInfo, const TargetRegisterInfo * TRI)

    Defined at line 270 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • template <typename T>
    T check (ErrorOr<T> E, basic_string Msg)

    Defined at line 270 of file llvm/tools/llvm-lto2/llvm-lto2.cpp

  • StringRef getProbeFNameForGUID (const GUIDProbeFunctionMap & GUID2FuncMAP, uint64_t GUID)

    Defined at line 270 of file llvm/lib/MC/MCPseudoProbe.cpp

  • bool AreEquivalentAddressValues (const Value * A, const Value * B)

    Test if A and B will obviously have the same value.

    This includes recognizing that %t0 and %t1 will have the same

    value in code like this:

    Code

                                                    
                                                           %t0 = getelementptr \@a, 0, 3
                                                           store i32 0, i32* %t0
                                                           %t1 = getelementptr \@a, 0, 3
                                                           %t2 = load i32* %t1
                                                    
                                                

    Defined at line 270 of file llvm/lib/Analysis/Loads.cpp

  • bool TypeContainsPointers (Type * ty)

    Defined at line 270 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp

  • const Value * getPointerOperand (const Instruction * I, bool AllowVolatile)

    Get pointer operand of memory accessing instruction. If

    is

    not a memory accessing instruction, return nullptr. If

    is set to false and the instruction is volatile, return nullptr.

    Defined at line 270 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • template <typename NListType>
    void writeNListEntry (const SymbolEntry & SE, bool IsLittleEndian, char *& Out, uint32_t Nstrx)

    Defined at line 271 of file llvm/lib/ObjCopy/MachO/MachOWriter.cpp

  • basic_string getIncludePath (const Record * R)

    This is expensive and slow.

    Defined at line 271 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  • Error parseV5DirFileTables (const DWARFDataExtractor & DebugLineData, uint64_t * OffsetPtr, const dwarf::FormParams & FormParams, const DWARFContext & Ctx, const DWARFUnit * U, DWARFDebugLine::ContentTypeTracker & ContentTypes, std::vector<DWARFFormValue> & IncludeDirectories, std::vector<DWARFDebugLine::FileNameEntry> & FileNames)

    Defined at line 271 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp

  • AllocFnKind getAllocFnKind (const Function * F)

    Defined at line 272 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • uint64_t getFragmentOffsetInBits (const DIExpression & Expr)

    Defined at line 272 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void debugValue (const ValueMapping & M, unsigned int I, StringRef Desc)

    Defined at line 272 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • Expected<uint8_t> parseVisibilityType (StringRef VisType)

    Defined at line 272 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • void CreateSigAltStack ()

    Defined at line 272 of file llvm/lib/Support/Unix/Signals.inc

  • basic_string getColor (const GraphDiffRenderer::GraphT::VertexValueType & V, const GraphDiffRenderer::GraphT & G, ColorHelper H, StatType T)

    Defined at line 272 of file llvm/tools/llvm-xray/xray-graph-diff.cpp

  • bool getSymTab (Value * V, ValueSymbolTable *& ST)

    Defined at line 272 of file llvm/lib/IR/Value.cpp

  • bool simplifyFunctionCFGImpl (Function & F, const TargetTransformInfo & TTI, DominatorTree * DT, const SimplifyCFGOptions & Options)

    Defined at line 272 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  • void collectStatsForDie (DWARFDie Die, const std::string & FnPrefix, const std::string & VarPrefix, uint64_t BytesInScope, uint32_t InlineDepth, StringMap<PerFunctionStats> & FnStatMap, GlobalStats & GlobalStats, LocationStats & LocStats, AbstractOriginVarsTy * AbstractOriginVariables)

    Collect debug info quality metrics for one DIE.

    Defined at line 272 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • template <typename IteratorTy>
    void PrintValueSet (raw_ostream & OS, IteratorTy Begin, IteratorTy End)

    Debugging aid -- prints a [Begin, End) range of values.

    Defined at line 273 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • OMPScheduleType computeOpenMPScheduleType (ScheduleKind ClauseKind, bool HasChunks, bool HasSimdModifier, bool HasMonotonicModifier, bool HasNonmonotonicModifier, bool HasOrderedClause, bool HasDistScheduleChunks)

    Determine the schedule type using schedule and ordering clause arguments.

    Defined at line 273 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • Constant * rebuildZeroUpperCst (const Constant * C, unsigned int NumBits, unsigned int , unsigned int ScalarBitWidth)

    Defined at line 273 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • StatCollection getSymbolStats (const SymbolGroup & SG, StatCollection & CumulativeStats)

    Defined at line 273 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • Register isCopyOfBundle (const MachineInstr & FirstMI, Register Reg, const TargetInstrInfo & TII)

    Check for a copy bundle as formed by SplitKit.

    Defined at line 273 of file llvm/lib/CodeGen/InlineSpiller.cpp

  • void attemptToFoldSymbolOffsetDifference (const MCAssembler * Asm, bool InSet, const MCSymbol *& A, const MCSymbol *& B, int64_t & Addend)

    Helper method for

    Defined at line 273 of file llvm/lib/MC/MCExpr.cpp

  • basic_string getMangledRootDefName (StringRef DefOperandName)

    Defined at line 274 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • xmlNodePtr getDominantNode (xmlNodePtr Node1, xmlNodePtr Node2)

    Given two nodes, return the one with the higher priority namespace.

    Defined at line 274 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • void BM_Mustache_LargeOutputString (benchmark::State & state)

    Tests the performance of the underlying buffer management when generating a

    very large output.

    Defined at line 274 of file llvm/benchmarks/Mustache.cpp

  • unsigned int getLAScore (VPValue * V1, VPValue * V2, unsigned int MaxLevel, VPInterleavedAccessInfo & IAI)

    Implements getLAScore from Listing 7 in the paper.

    Traverses and compares operands of V1 and V2 to MaxLevel.

    Defined at line 274 of file llvm/lib/Transforms/Vectorize/VPlanSLP.cpp

  • void setPGOOptions (TargetMachine & TM)

    Function to set PGO options on TargetMachine based on command line flags.

    Defined at line 274 of file llvm/tools/llc/llc.cpp

  • void handleDiagnostics ( Severity, const char * Msg, void * )

    Defined at line 274 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • void emitGetNamedOperandIdx (raw_ostream & OS, const int & OperandMap, unsigned int MaxOperandNo, unsigned int NumOperandNames)

    Defined at line 274 of file llvm/utils/TableGen/InstrInfoEmitter.cpp

  • template <typename AARGetterT>
    void addMemoryAttrs (const SCCNodeSet & SCCNodes, AARGetterT && AARGetter, SmallPtrSet<Function *, 8> & Changed)

    Deduce readonly/readnone/writeonly attributes for the SCC.

    Defined at line 274 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void discoverTypeIndices (ArrayRef Content, TypeLeafKind Kind, SmallVectorImpl<TiReference> & Refs)

    Defined at line 274 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • void initializeReplaceWithVeclibLegacyPassOnce (PassRegistry & Registry)

    Defined at line 275 of file llvm/lib/CodeGen/ReplaceWithVeclib.cpp

  • bool setAllocatedPointerParam (Function & F, unsigned int ArgNo)

    Defined at line 275 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void getCountParam ()

    Extract the parameter from the command line for the [count] argument

    associated with the N modifier

    Defined at line 275 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • ResultRow getStats (MutableArrayRef Timings)

    Defined at line 275 of file llvm/tools/llvm-xray/xray-account.cpp

  • void loadCSE (Loop * L, DominatorTree & DT, ScalarEvolution & SE, LoopInfo & LI, BatchAAResults & BAA, function_ref GetMSSA)

    Defined at line 275 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • size_t llvm_blake3_compress_subtree_wide (const uint8_t * input, size_t input_len, const uint32_t[8] key, uint64_t chunk_counter, uint8_t flags, uint8_t * out, _Bool use_tbb)

    The wide helper function returns (writes out) an array of chaining values

    and returns the length of that array. The number of chaining values returned

    is the dynamically detected SIMD degree, at most MAX_SIMD_DEGREE. Or fewer,

    if the input is shorter than that many chunks. The reason for maintaining a

    wide array of chaining values going back up the tree, is to allow the

    implementation to hash as many parents in parallel as possible.

    As a special case when the SIMD degree is 1, this function will still return

    at least 2 outputs. This guarantees that this function doesn't perform the

    root compression. (If it did, it would use the wrong flags, and also we

    wouldn't be able to implement extendable output.) Note that this function is

    not used when the whole input is only 1 chunk long; that's a different

    codepath.

    Why not just have the caller split the input on the first update(), instead

    of implementing this special rule? Because we don't want to limit SIMD or

    multi-threading parallelism for that update().

    Defined at line 275 of file llvm/lib/Support/BLAKE3/blake3.c

  • bool fixIrreducible (Cycle & C, CycleInfo & CI, DominatorTree & DT, LoopInfo * LI)

    Given a set of blocks and headers in an irreducible SCC, convert it into a

    natural loop. Also insert this new loop at its appropriate place in the

    hierarchy of loops.

    Defined at line 275 of file llvm/lib/Transforms/Utils/FixIrreducible.cpp

  • bool checkFnAllocKind (const Value * V, AllocFnKind Wanted)

    Defined at line 276 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • const char * getRegName (MCRegister Reg)

    Defined at line 276 of file llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp

  • optional parseFnAttrAsInteger (Function & F, StringRef Name)

    Defined at line 276 of file llvm/lib/Analysis/KernelInfo.cpp

  • bool definedInRegion (const SetVector<BasicBlock *> & Blocks, Value * V)

    definedInRegion - Return true if the specified value is defined in the

    extracted region.

    Defined at line 276 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • unsigned int getNumElements (Type * Ty)

    Defined at line 276 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • template <typename T>
    DiffOutput recordDifferences (const std::vector<T> & LHS, const std::vector<T> & RHS, basic_string Attr)

    Defined at line 276 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • Instruction * CreateNeg (Value * S1, const Twine & Name, ilist_iterator_w_bits InsertBefore, Value * FlagsOp)

    Defined at line 276 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • MachineMemOperand * getStackAlignedMMO (SDValue StackPtr, MachineFunction & MF, bool isObjectScalable)

    Helper function that generates an MMO that considers the alignment of the

    stack, and the size of the stack object

    Defined at line 276 of file llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

  • GenericValue executeICMP_ULE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 276 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • bool isNoopPtrIntCastPair (const Operator * I2P, const DataLayout & DL, const TargetTransformInfo * TTI)

    Check whether that's no-op pointer bicast using a pair of

    `ptrtoint`/`inttoptr` due to the missing no-op pointer bitcast over

    different address spaces.

    Defined at line 276 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • bool getSymbolOffsetImpl (const MCAssembler & Asm, const MCSymbol & S, bool ReportError, uint64_t & Val)

    Defined at line 276 of file llvm/lib/MC/MCAssembler.cpp

  • Error parseAddrSpaceAndName (StringRef Str, unsigned int & AddrSpace, StringRef & AddrSpaceName)

    Attempts to parse an address space component of a specification allowing

    name to be specified as well. The input is expected to be of the form

    <number

    > '(' name ' )', with the name otional and the number is optional as

    well.

    Defined at line 276 of file llvm/lib/IR/DataLayout.cpp

  • void testBlobsParallel (ObjectStore & Read1, ObjectStore & Read2, ObjectStore & Write1, ObjectStore & Write2, uint64_t BlobSize)

    Common test functionality for creating blobs in parallel. You can vary which

    cas instances are the same or different, and the size of the created blobs.

    Defined at line 276 of file llvm/unittests/CAS/ObjectStoreTest.cpp

  • template <class BrSelInst>
    bool handleBrSelExpect (BrSelInst & BSI)

    Handle both BranchInst and SelectInst.

    Defined at line 276 of file llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp

  • bool sinkScalarOperands (VPlan & Plan)

    Defined at line 276 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • std::pair<Value *, APInt> getMask (Value * WideMask, unsigned int Factor, VectorType * LeafValueTy)

    Defined at line 277 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp

  • int usage ()

    Defined at line 277 of file llvm/tools/llvm-lto2/llvm-lto2.cpp

  • LLT getTypeFromTypeIdx (const MachineInstr & MI, const MachineRegisterInfo & MRI, unsigned int OpIdx, unsigned int TypeIdx)

    Helper function to get LLT for the given type index.

    Defined at line 277 of file llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp

  • basic_string getStageMaskString (ArrayRef<const Record *> Recs)

    Return a string representation of valid shader stag information denoted

    by input records

    Parameters

    Recs A vector of records of TableGen Stages records

    Returns

    std::string string representation of stages mask string

    predicated by DXIL Version. E.g.,

    {{{1, 0}, Mask1}, {{1, 2}, Mask2}, ...}

    Defined at line 277 of file llvm/utils/TableGen/DXILEmitter.cpp

  • FragCalcResult calculateFragment (DILocalVariable * Variable, uint64_t NewStorageSliceOffsetInBits, uint64_t NewStorageSliceSizeInBits, optional StorageFragment, optional CurrentFragment, DIExpression::FragmentInfo & Target)

    Defined at line 277 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • LoopUnrollResult tryToUnrollAndJamLoop (Loop * L, DominatorTree & DT, LoopInfo * LI, ScalarEvolution & SE, const TargetTransformInfo & TTI, AssumptionCache & AC, DependenceInfo & DI, OptimizationRemarkEmitter & ORE, int OptLevel)

    Defined at line 277 of file llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp

  • LLVMBool LLVMGetSectionContainsSymbol (LLVMSectionIteratorRef SI, LLVMSymbolIteratorRef Sym)

    Defined at line 278 of file llvm/lib/Object/Object.cpp

  • const char * stringify (const MachineInstr * MI, std::string & S)

    Defined at line 278 of file llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp

  • unsigned int getMaxShiftAmount (const APInt & MaxValue, unsigned int BitWidth)

    Defined at line 278 of file llvm/lib/Support/KnownBits.cpp

  • template <typename T>
    void printStackObjectDbgInfo (const MachineFunction::VariableDbgInfo & DebugVar, T & Object, ModuleSlotTracker & MST)

    Defined at line 278 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • APInt constructOperandMask (ArrayRef<int64_t> Indices)

    Used by function `processSTIPredicate` to construct a mask of machine

    instruction operands.

    Defined at line 278 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • LogicalResult readLine (std::FILE * In, SmallVectorImpl<char> & Out)

    Tries to read a line up to and including

    .

    If failing, feof(), ferror(), or shutdownRequested() will be set.

    Defined at line 278 of file llvm/lib/Support/LSP/Transport.cpp

  • basic_string getDescription (const Region & R)

    Defined at line 279 of file llvm/lib/Analysis/RegionPass.cpp

  • NodeArrayNode * nodeListToNodeArray (ArenaAllocator & Arena, NodeList * Head, size_t Count)

    Defined at line 279 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • SourcePred validInsertValueIndex ()

    Defined at line 279 of file llvm/lib/FuzzMutate/Operations.cpp

  • bool checkFnAllocKind (const Function * F, AllocFnKind Wanted)

    Defined at line 280 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • bool useStringTable (bool Thin, StringRef Name)

    Defined at line 280 of file llvm/lib/Object/ArchiveWriter.cpp

  • basic_string stringify (const omp::Clause & C)

    Defined at line 280 of file llvm/unittests/Frontend/OpenMPDecompositionTest.cpp

  • void AddLines (uint64_t FuncAddr, uint32_t FileIdx, FunctionInfo & FI)

    Defined at line 280 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • bool isRequiredByABISymbol (const Object & Obj, const Symbol & Sym)

    Check if the symbol should be preserved because it is required by ABI.

    Defined at line 280 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • bool applyDebugify (Function & F, DebugifyMode Mode, DebugInfoPerPass * DebugInfoBeforePass, StringRef NameOfWrappedPass)

    Defined at line 280 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • void annotateDereferenceableBytes (CallInst * CI, ArrayRef ArgNos, uint64_t DereferenceableBytes)

    Defined at line 280 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • Expected<LLTCodeGen> getInstResultType (const TreePatternNode & Dst, const CodeGenTarget & Target)

    ===- GlobalISelEmitter class --------------------------------------------===//

    Defined at line 280 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • bool mayFoldFromLeftToRight (uint8_t LHS, uint8_t RHS)

    Defined at line 280 of file llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  • void getAllocatableSetForRC (const MachineFunction & MF, const TargetRegisterClass * RC, BitVector & R)

    getAllocatableSetForRC - Toggle the bits that represent allocatable

    registers for the specific register class.

    Defined at line 281 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp

  • uint64_t XXH3_mix16B (const uint8_t * input, const uint8_t * secret, uint64_t seed)

    Defined at line 281 of file llvm/lib/Support/xxhash.cpp

  • bool isTileDef (MachineRegisterInfo * MRI, MachineInstr & MI)

    Defined at line 281 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp

  • bool containsGCPtrType (Type * Ty, GCStrategy * GC)

    Returns true if this type contains a gc pointer whether we know how to

    handle that type or not.

    Defined at line 281 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • template <class ELFT>
    optional getImageBaseAddress (const object::ELFFile<ELFT> & ELFFile)

    Determine the virtual address that is considered the base address of an ELF

    object file.

    The base address of an ELF file is the "p_vaddr" of the first program

    header whose "p_type" is PT_LOAD.

    Parameters

    ELFFile An ELF object file we will search.

    Defined at line 281 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • lto_module_t lto_module_create_from_memory_with_path (const void * mem, size_t length, const char * path)

    Loads an object file from memory with an extra path argument.

    Returns NULL on error (check lto_get_error_message() for details).

    Defined at line 281 of file llvm/tools/lto/lto.cpp

  • ParseRet tryParseAlign (StringRef & ParseString, Align & Alignment)

    Looks into the

    <parameters

    > part of the mangled name in search

    of a valid 'aligned' clause. The function should be invoked

    after parsing a parameter via `tryParseParameter`.

    On success, it removes the parsed parameter from `ParseString`,

    sets `PKind` to the correspondent enum value, sets `StepOrPos`

    accordingly, and return success. On a syntax error, it return a

    parsing error. If nothing is parsed, it returns std::nullopt.

    Defined at line 281 of file llvm/lib/IR/VFABIDemangler.cpp

  • ItaniumManglingCanonicalizer::Key parseMaybeMangledName (CanonicalizingDemangler & Demangler, StringRef Mangling, bool CreateNewNodes)

    Defined at line 281 of file llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp

  • void printMasking (raw_ostream & OS, const MCInst * MI, const MCInstrInfo & MCII)

    Wraps the destination register name with AVX512 mask/maskz filtering.

    Defined at line 281 of file llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp

  • unsigned int HashMachineInstr (const MachineInstr & MI)

    HashMachineInstr - Compute a hash value for MI and its operands.

    Defined at line 281 of file llvm/lib/CodeGen/BranchFolding.cpp

  • template <typename AliasAnalysisType>
    bool instructionClobbersQuery (const MemoryDef * MD, const MemoryLocation & UseLoc, const Instruction * UseInst, AliasAnalysisType & AA)

    Defined at line 281 of file llvm/lib/Analysis/MemorySSA.cpp

  • void LLVMSetTargetMachineMachineOutliner (LLVMTargetMachineRef T, LLVMBool Enable)

    Enable the MachineOutliner pass.

    Defined at line 282 of file llvm/lib/Target/TargetMachineC.cpp

  • bool setAllocSize (Function & F, unsigned int ElemSizeArg, optional NumElemsArg)

    Defined at line 282 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • basic_string getPCMFile (const DWARFDie & CUDie, int * ObjectPrefixMap)

    Defined at line 282 of file llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp

  • basic_string computeRISCVDataLayout (const Triple & TT, StringRef ABIName)

    Defined at line 282 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • optional getDerefOffsetInBytes (const DIExpression * DIExpr)

    Extract the offset used in

    Returns std::nullopt if the expression

    doesn't explicitly describe a memory location with DW_OP_deref or if the

    expression is too complex to interpret.

    Defined at line 282 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • template <typename T>
    void executeCommand (StringRef ModuleName, const T & ModuleSpec, Command Cmd, StringRef Symbol, uint64_t Offset, uint64_t AdjustVMA, bool ShouldInline, OutputStyle Style, LLVMSymbolizer & Symbolizer, DIPrinter & Printer)

    Defined at line 282 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • bool CleanupConstantGlobalUsers (GlobalVariable * GV, const DataLayout & DL)

    We just marked GV constant. Loop over all users of the global, cleaning up

    the obvious ones. This is largely just a quick scan over the use list to

    clean up the easy and obvious cruft. This returns true if it made a change.

    Defined at line 282 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • int run (int argc, char ** argv)

    Defined at line 282 of file llvm/tools/llvm-lto2/llvm-lto2.cpp

  • void linkComponents ()

    Defined at line 283 of file llvm/tools/lli/lli.cpp

  • unique_ptr GetOutputStream (StringRef Path, OpenFlags Flags)

    Defined at line 283 of file llvm/tools/llvm-mc/llvm-mc.cpp

  • void debugUserMismatch (const ValueMapping & L, const ValueMapping & R, unsigned int I)

    Defined at line 283 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • void getSectionsAndSymbols (MachOObjectFile * MachOObj, int & Sections, int & Symbols, SmallVectorImpl<uint64_t> & FoundFns, uint64_t & BaseSegmentAddress)

    Defined at line 283 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void parseArgs (int argc, char ** argv)

    Defined at line 283 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • bool shouldBeDeferred (Function * Caller, TargetTransformInfo & CalleeTTI, InlineCost IC, int & TotalSecondaryCost, function_ref<InlineCost (CallBase &)> GetInlineCost)

    Return true if inlining of CB can block the caller from being

    inlined which is proved to be more beneficial.

    is the

    estimated inline cost associated with callsite

    will be set to the estimated cost of inlining the

    caller if

    is suppressed for inlining.

    Defined at line 283 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • DriverConfig parseArgs (int argc, char *const * argv)

    Defined at line 283 of file llvm/tools/llvm-ifs/llvm-ifs.cpp

  • LLVMRelocationIteratorRef LLVMGetRelocations (LLVMSectionIteratorRef Section)

    Section Relocation iterators

    Defined at line 284 of file llvm/lib/Object/Object.cpp

  • basic_string formatWithCommas (unsigned long long Value)

    Utility function to format numbers with commas.

    Defined at line 284 of file llvm/lib/Object/OffloadBundle.cpp

  • basic_string stringify (const omp::DirectiveWithClauses & DWC)

    Defined at line 284 of file llvm/unittests/Frontend/OpenMPDecompositionTest.cpp

  • unique_ptr ParsePrimary ()

    primary

    ::= identifierexpr

    ::= numberexpr

    ::= parenexpr

    Defined at line 284 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • InstructionCost getOutliningBenefit (ArrayRef Region, TargetTransformInfo & TTI)

    Get the benefit score of outlining

    Defined at line 284 of file llvm/lib/Transforms/IPO/HotColdSplitting.cpp

  • bool is64BitKind (Kind Kind)

    Defined at line 284 of file llvm/lib/Object/ArchiveWriter.cpp

  • void reorderSubVector (MVT VT, SmallVectorImpl<Value *> & TransposedMatrix, ArrayRef<Value *> Vec, ArrayRef<int> VPShuf, unsigned int VecElems, unsigned int Stride, int & Builder)

    For VecElems = 64

    Invec[0] - |0|3|6|9 | TransposedMatrix[0] - |0|1|2 |3 |

    Invec[1] - |1|4|7|10| => TransposedMatrix[1] - |4|5|6 |7 |

    Invec[2] - |2|5|8|11| TransposedMatrix[2] - |8|9|10|11|

    Defined at line 284 of file llvm/lib/Target/X86/X86InterleavedAccess.cpp

  • bool RegisterCrashPrinter ()

    Defined at line 285 of file llvm/lib/Support/PrettyStackTrace.cpp

  • FixedVectorType * getWidenedType (Type * ScalarTy, unsigned int VF)

    Defined at line 285 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isNoopBitcast (Type * T1, Type * T2, const TargetLoweringBase & TLI)

    Defined at line 285 of file llvm/lib/CodeGen/Analysis.cpp

  • DiffOutput recordDifferences (iterator_range LHS, iterator_range RHS, basic_string Attr)

    Defined at line 285 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • void setMemoryPhiValueForBlock (MemoryPhi * MP, const BasicBlock * BB, MemoryAccess * NewDef)

    Set every incoming edge {BB, MP->getBlock()} of MemoryPhi MP to NewDef.

    Defined at line 285 of file llvm/lib/Analysis/MemorySSAUpdater.cpp

  • bool isConvergenceCtrlMachineOp (SDValue Op)

    Defined at line 285 of file llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp

  • Error InitDebuggingDir (PerfState & State)

    Defined at line 285 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • bool hasInheritedNs (xmlNodePtr Node)

    Checks if this Node's namespace is inherited or one it defined itself.

    Defined at line 286 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • bool definedInCaller (const SetVector<BasicBlock *> & Blocks, Value * V)

    definedInCaller - Return true if the specified value is defined in the

    function being code extracted, but not in the region being extracted.

    These values must be passed in as live-ins to the function.

    Defined at line 286 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • template <>
    std::size_t GetValueForStack<AggregationType::TOTAL_TIME> (const StackTrieNode * Node)

    When computing total time spent in a stack, we're adding the timings from

    its callees and the timings from when it was a leaf.

    Defined at line 286 of file llvm/tools/llvm-xray/xray-stacks.cpp

  • void DisambiguateGlobalSymbols (Module & M)

    Give anonymous global values names.

    Defined at line 286 of file llvm/tools/bugpoint/Miscompilation.cpp

  • bool processICmp (ICmpInst * Cmp, LazyValueInfo * LVI)

    Defined at line 286 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • template <typename Segment, typename Section>
    Error parseSegmentLoadCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, SmallVectorImpl<const char *> & Sections, bool & IsPageZeroSegment, uint32_t LoadCommandIndex, const char * CmdName, uint64_t SizeOfHeaders, std::list<MachOElement> & Elements)

    Parses LC_SEGMENT or LC_SEGMENT_64 load command, adds addresses of all

    sections to

    Parameters

    Sections, and optionally sets
    IsPageZeroSegment to true.

    Defined at line 286 of file llvm/lib/Object/MachOObjectFile.cpp

  • bool splitLoopBound (Loop & L, DominatorTree & DT, LoopInfo & LI, ScalarEvolution & SE, LPMUpdater & U)

    Defined at line 286 of file llvm/lib/Transforms/Scalar/LoopBoundSplit.cpp

  • LLVMTargetDataRef LLVMCreateTargetDataLayout (LLVMTargetMachineRef T)

    Create a DataLayout based on the targetMachine.

    Defined at line 287 of file llvm/lib/Target/TargetMachineC.cpp

  • void getArchive ()

    Get the archive file name from the command line

    Defined at line 287 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool declaresCoroEarlyIntrinsics (const Module & M)

    Defined at line 287 of file llvm/lib/Transforms/Coroutines/CoroEarly.cpp

  • Error readFileAndProcessRemarks (StringRef InputFileName, StringMap<InstCountAndStackSize> & FuncNameToSizeInfo)

    Process all of the size-related remarks in a file.

    Parameters

    InputFileName [in] - Name of file to read from.
    FuncNameToSizeInfo [in,out] - Maps function names to relevant size info.

    Defined at line 287 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • void printDarwinSegmentSizes (MachOObjectFile * MachO)

    Print the summary sizes of the standard Mach-O segments in

    This is when used when

    is berkeley with a Mach-O file and

    produces the same output as darwin's size(1) default output.

    Defined at line 287 of file llvm/tools/llvm-size/llvm-size.cpp

  • CallBase & versionCallSiteWithCond (CallBase & CB, Value * Cond, MDNode * BranchWeights)

    Predicate and clone the given call site.

    This function creates an if-then-else structure at the location of the call

    site. The "if" condition is specified by `Cond`.

    The original call site is moved into the "else" block, and a clone of the

    call site is placed in the "then" block. The cloned instruction is returned.

    For example, the call instruction below:

    orig_bb:

    %t0 = call i32 %ptr()

    ...

    Is replace by the following:

    orig_bb:

    %cond = Cond

    br i1 %cond, %then_bb, %else_bb

    then_bb:

    ; The clone of the original call instruction is placed in the "then"

    ; block. It is not yet promoted.

    %t1 = call i32 %ptr()

    br merge_bb

    else_bb:

    ; The original call instruction is moved to the "else" block.

    %t0 = call i32 %ptr()

    br merge_bb

    merge_bb:

    ; Uses of the original call instruction are replaced by uses of the phi

    ; node.

    %t2 = phi i32 [ %t0, %else_bb ], [ %t1, %then_bb ]

    ...

    A similar transformation is performed for invoke instructions. However,

    since invokes are terminating, more work is required. For example, the

    invoke instruction below:

    orig_bb:

    %t0 = invoke %ptr() to label %normal_dst unwind label %unwind_dst

    Is replace by the following:

    orig_bb:

    %cond = Cond

    br i1 %cond, %then_bb, %else_bb

    then_bb:

    ; The clone of the original invoke instruction is placed in the "then"

    ; block, and its normal destination is set to the "merge" block. It is

    ; not yet promoted.

    %t1 = invoke i32 %ptr() to label %merge_bb unwind label %unwind_dst

    else_bb:

    ; The original invoke instruction is moved into the "else" block, and

    ; its normal destination is set to the "merge" block.

    %t0 = invoke i32 %ptr() to label %merge_bb unwind label %unwind_dst

    merge_bb:

    ; Uses of the original invoke instruction are replaced by uses of the

    ; phi node, and the merge block branches to the normal destination.

    %t2 = phi i32 [ %t0, %else_bb ], [ %t1, %then_bb ]

    br %normal_dst

    An indirect musttail call is processed slightly differently in that:

    1. No merge block needed for the orginal and the cloned callsite, since

    either one ends the flow. No phi node is needed either.

    2. The return statement following the original call site is duplicated too

    and placed immediately after the cloned call site per the IR convention.

    For example, the musttail call instruction below:

    orig_bb:

    %t0 = musttail call i32 %ptr()

    ...

    Is replaced by the following:

    cond_bb:

    %cond = Cond

    br i1 %cond, %then_bb, %orig_bb

    then_bb:

    ; The clone of the original call instruction is placed in the "then"

    ; block. It is not yet promoted.

    %t1 = musttail call i32 %ptr()

    ret %t1

    orig_bb:

    ; The original call instruction stays in its original block.

    %t0 = musttail call i32 %ptr()

    ret %t0

    Defined at line 287 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp

  • ConstantRange makeExactMulNUWRegion (const APInt & V)

    Exact mul nuw region for single element RHS.

    Defined at line 288 of file llvm/lib/IR/ConstantRange.cpp

  • WasmLimits readLimits (WasmObjectFile::ReadContext & Ctx)

    Defined at line 288 of file llvm/lib/Object/WasmObjectFile.cpp

  • DenseMap predictUseListOrder (const Module * M)

    Defined at line 288 of file llvm/lib/IR/AsmWriter.cpp

  • void saveFilteredNewMIBNodes (std::vector<Metadata *> & NewMIBNodes, std::vector<Metadata *> & SavedMIBNodes, unsigned int CallerContextLength, uint64_t TotalBytes, uint64_t ColdBytes, bool BuiltFromExistingMetadata)

    Copy over some or all of NewMIBNodes to the SavedMIBNodes vector, depending

    on options that enable filtering out some NotCold contexts.

    Defined at line 288 of file llvm/lib/Analysis/MemoryProfileInfo.cpp

  • void LLVMDisposeRelocationIterator (LLVMRelocationIteratorRef RI)

    Defined at line 289 of file llvm/lib/Object/Object.cpp

  • BinaryOperator * LowerNegateToMultiply (Instruction * Neg)

    Replace 0-X with X*-1.

    Defined at line 289 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • void indirectGlobals (GlobalVariable * IndirectionTable, SmallVector ToIndirect)

    Defined at line 289 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • void buildPartialUnswitchConditionalBranch (BasicBlock & BB, ArrayRef Invariants, bool Direction, BasicBlock & UnswitchedSucc, BasicBlock & NormalSucc, bool InsertFreeze, const Instruction * I, AssumptionCache * AC, const DominatorTree & DT, const BranchInst & ComputeProfFrom)

    Copy a set of loop invariant values

    and insert them at the

    end of

    and conditionally branch on the copied condition. We only

    branch on a single value.

    We attempt to estimate the profile of the resulting conditional branch from

    which is the original conditional branch we're

    unswitching.

    When

    is true, the

    form a disjunction, and the

    branch conditioned on it exits the loop on the "true" case. When

    is false, the

    form a conjunction and the branch

    exits on the "false" case.

    Defined at line 289 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • int getAddrOffset (const MachineInstr * MI)

    Defined at line 290 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • void addUsedSymbolToPreservedGUID (const lto::InputFile & File, int & PreservedGUID)

    Defined at line 290 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • bool lookupCandidateBaseReg (Register BaseReg, int64_t BaseOffset, int64_t FrameSizeAdjust, int64_t LocalFrameOffset, const MachineInstr & MI, const TargetRegisterInfo * TRI)

    Defined at line 290 of file llvm/lib/CodeGen/LocalStackSlotAllocation.cpp

  • bool isNamespaceLikeEntry (const DWARFDebugInfoEntry * Entry)

    Defined at line 290 of file llvm/lib/DWARFLinker/Parallel/DependencyTracker.cpp

  • bool getPreviousInstr (int & I, MachineBasicBlock & MBB)

    getPreviousInstr - Given a reference to an instruction in a basic

    block, return a reference to the previous instruction in the block,

    wrapping around to the last instruction of the block if the block

    branches to itself.

    Defined at line 290 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • GenericValue executeICMP_SLE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 290 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • optional hexagonAttrToFeatureString (unsigned int Attr)

    Defined at line 290 of file llvm/lib/Object/ELFObjectFile.cpp

  • bool propagateLocalCopies (MachineBasicBlock * MBB)

    Defined at line 290 of file llvm/lib/CodeGen/MIRCanonicalizerPass.cpp

  • bool setAllocFamily (Function & F, StringRef Family)

    Defined at line 291 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void AddInline (uint64_t FuncAddr, uint64_t FuncSize, FunctionInfo & FI)

    Defined at line 291 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • LLVMBool LLVMTargetMachineEmit (LLVMTargetMachineRef T, LLVMModuleRef M, raw_pwrite_stream & OS,  codegen, char ** ErrorMessage)

    Defined at line 291 of file llvm/lib/Target/TargetMachineC.cpp

  • Expected<DsymutilOptions> getOptions (opt::InputArgList & Args)

    Parses the command line options into the LinkOptions struct and performs

    some sanity checking. Returns an error in case the latter fails.

    Defined at line 291 of file llvm/tools/dsymutil/dsymutil.cpp

  • bool hasInheritedDefaultNs (xmlNodePtr Node)

    Check if this Node's namespace is a default namespace that it inherited, as

    opposed to defining itself.

    Defined at line 292 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • StructType * getOrCreateElementStruct (Type * ElemType, StringRef Name)

    Defined at line 292 of file llvm/lib/Analysis/DXILResource.cpp

  • bool isNonVolatileLoad (const Instruction * I)

    Defined at line 292 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • IdentifyingPassPtr applyDisable (IdentifyingPassPtr PassID, bool Override)

    Allow standard passes to be disabled by command line options. This supports

    simple binary flags that either suppress the pass or do nothing.

    i.e. -disable-mypass=false has no effect.

    These should be converted to boolOrDefault in order to use applyOverride.

    Defined at line 292 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • Twine truncateString (const StringRef & S, size_t n)

    Defined at line 293 of file llvm/tools/llvm-xray/xray-graph-diff.cpp

  • LLVMBool LLVMIsRelocationIteratorAtEnd (LLVMSectionIteratorRef Section, LLVMRelocationIteratorRef RI)

    Defined at line 293 of file llvm/lib/Object/Object.cpp

  • template <typename T>
    void printStructField (LinePrinter & P, StringRef Label, T Value)

    Defined at line 293 of file llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp

  • bool isUnneededSymbol (const Symbol & Sym)

    Defined at line 293 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • void printRegFlags (Register Reg, int & RegisterFlags, const MachineFunction & MF, const TargetRegisterInfo * TRI)

    Defined at line 293 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • basic_string formatCookieKind (FrameCookieKind Kind)

    Defined at line 293 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • unsigned int getFullVectorNumberOfElements (const TargetTransformInfo & TTI, Type * Ty, unsigned int Sz)

    Returns the number of elements of the given type

    not less than

    which forms type, which splits by

    into whole vector types during

    legalization.

    Defined at line 293 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • ShapeT getShape (MachineRegisterInfo * MRI, Register TileReg)

    Defined at line 293 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp

  • const char * getImplicitLoaderSectionSymName (int SymIndx)

    From the XCOFF specification: there are five implicit external symbols, one

    each for the .text, .data, .bss, .tdata, and .tbss sections. These symbols

    are referenced from the relocation table entries using symbol table index

    values 0, 1, 2, -1, and -2, respectively.

    Defined at line 293 of file llvm/tools/llvm-readobj/XCOFFDumper.cpp

  • uint64_t XXH3_len_17to128_64b (const uint8_t * input, size_t len, const uint8_t * secret, const uint64_t seed)

    For mid range keys, XXH3 uses a Mum-hash variant.

    Defined at line 293 of file llvm/lib/Support/xxhash.cpp

  • template <typename FatArchTy>
    Error writeUniversalArchsToStream (fat_header FatHeader, ArrayRef Slices, raw_ostream & Out)

    Defined at line 293 of file llvm/lib/Object/MachOUniversalWriter.cpp

  • bool isCompatibleReplacement (const Instruction * I, const Use & Operand, const Value * Replacement)

    Defined at line 293 of file llvm/lib/FuzzMutate/RandomIRBuilder.cpp

  • void initializeShrinkWrapLegacyPassOnce (PassRegistry & Registry)

    Defined at line 294 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • bool applyDebugify (Module & M, DebugifyMode Mode, DebugInfoPerPass * DebugInfoBeforePass, StringRef NameOfWrappedPass)

    Defined at line 294 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • object::Archive & readLibrary (const Twine & Library)

    Defined at line 294 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • basic_string stringify (ErrorCode E)

    Defined at line 294 of file llvm/unittests/Frontend/OpenMPDecompositionTest.cpp

  • lto_module_t lto_module_create_in_local_context (const void * mem, size_t length, const char * path)

    Loads an object file in its own context.

    Loads an object file in its own LLVMContext. This function call is

    thread-safe. However, modules created this way should not be merged into an

    lto_code_gen_t using

    Returns NULL on error (check lto_get_error_message() for details).

    Defined at line 294 of file llvm/tools/lto/lto.cpp

  • void initializeRAGreedyLegacyPassOnce (PassRegistry & Registry)

    Defined at line 294 of file llvm/lib/CodeGen/RegAllocGreedy.cpp

  • BasicBlock * getCommonExitBlock (const SetVector<BasicBlock *> & Blocks)

    Defined at line 294 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • bool globalVariableNeedsRedirect (GlobalVariable * GV)

    Returns true if GV needs redirection through a __ref_* variable.

    Defined at line 294 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp

  • void processSTIPredicate (STIPredicateFunction & Fn, const ProcModelMapTy & ProcModelMap)

    Defined at line 294 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • void initializeBlockFrequencyInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 295 of file llvm/lib/Analysis/BlockFrequencyInfo.cpp

  • void debugSizeMismatch (const ValueMapping & L, const ValueMapping & R)

    Defined at line 295 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • Instruction * findRetainForStoreStrongContraction (Value * New, StoreInst * Store, Instruction * Release, ProvenanceAnalysis & PA)

    Defined at line 295 of file llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp

  • void RegisterHandlers ()

    Defined at line 295 of file llvm/lib/Support/Unix/Signals.inc

  • void setDwarfDebugFlags (int argc, char ** argv)

    Defined at line 296 of file llvm/tools/llvm-mc/llvm-mc.cpp

  • Value * constructPointer (Value * Ptr, int64_t Offset, int & IRB)

    Helper function to create a pointer based on

    and advanced by

    bytes.

    Defined at line 296 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • void reportError (Twine Msg, StringRef Filename)

    Defined at line 296 of file llvm/tools/llc/llc.cpp

  • void redirectTo (BasicBlock * Source, BasicBlock * Target, DebugLoc DL)

    Make

    branch to

    Handles two situations:

    *

    already has an unconditional branch.

    *

    is a degenerate block (no terminator because the BB is

    the current head of the IR construction).

    Defined at line 296 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool isUnhandledGCPointerType (Type * Ty, GCStrategy * GC)

    Returns true if this is a type which a) is a gc pointer or contains a GC

    pointer and b) is of a type which the code doesn't expect (i.e. first class

    aggregates). Used to trip assertions.

    Defined at line 297 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool hasDefinedDefaultNamespace (xmlNodePtr Node)

    Check if this Node's namespace is a default namespace it defined itself.

    Defined at line 297 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • template <typename T>
    bool containsNullptr (const T & Collection)

    Defined at line 297 of file llvm/tools/llvm-xray/xray-graph-diff.cpp

  • template <>
    std::size_t GetValueForStack<AggregationType::INVOCATION_COUNT> (const StackTrieNode * Node)

    Calculates how many times a function was invoked.

    TODO: Hook up option to produce stacks

    Defined at line 297 of file llvm/tools/llvm-xray/xray-stacks.cpp

  • bool subRangeLiveAt (const LiveInterval & LI, SlotIndex Pos)

    Defined at line 297 of file llvm/lib/CodeGen/RenameIndependentSubregs.cpp

  • const char * lstep_back (struct re_guts * g, const char * start, const char * stop, sopno startst, sopno stopst)

    Step back from "stop" to a position where the strip startst..stopst might

    match. This can always conservatively return "stop - 1", but may return an

    earlier position if matches at later positions are impossible.

    Defined at line 297 of file llvm/lib/Support/regengine.inc

  • const char * sstep_back (struct re_guts * g, const char * start, const char * stop, sopno startst, sopno stopst)

    Step back from "stop" to a position where the strip startst..stopst might

    match. This can always conservatively return "stop - 1", but may return an

    earlier position if matches at later positions are impossible.

    Defined at line 297 of file llvm/lib/Support/regengine.inc

  • bool CC_X86_Intr (unsigned int & ValNo, MVT & ValVT, MVT & LocVT, CCValAssign::LocInfo & LocInfo, ISD::ArgFlagsTy & ArgFlags, CCState & State)

    X86 interrupt handlers can only take one or two stack arguments, but if

    there are two arguments, they are in the opposite order from the standard

    convention. Therefore, we have to look at the argument count up front before

    allocating stack for each argument.

    Defined at line 297 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • bool sinkLoopInvariantInstructions (Loop & L, AAResults & AA, LoopInfo & LI, DominatorTree & DT, BlockFrequencyInfo & BFI, MemorySSA & MSSA, ScalarEvolution * SE)

    Sinks instructions from loop's preheader to the loop body if the

    sum frequency of inserted copy is smaller than preheader's frequency.

    Defined at line 297 of file llvm/lib/Transforms/Scalar/LoopSink.cpp

  • Value * simplifyX86varShift (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Attempt to simplify AVX2 per-element shift intrinsics to a generic IR shift.

    Unlike the generic IR shifts, the intrinsics have defined behaviour for out

    of range shift amounts (logical - set to zero, arithmetic - splat sign bit).

    Defined at line 297 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • bool targetSupportsBF16Type (const MachineFunction * MF)

    Defined at line 298 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • bool isInstHardMergeHazard (MachineInstr & MI)

    Returns true if the instruction creates an unavoidable hazard that

    forces a boundary between store merge candidates.

    Defined at line 298 of file llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp

  • void LLVMMoveToNextRelocation (LLVMRelocationIteratorRef RI)

    Defined at line 298 of file llvm/lib/Object/Object.cpp

  • CodeGenOptLevel GetCodeGenOptLevel ()

    ===----------------------------------------------------------------------===//

    CodeGen-related helper functions.

    Defined at line 298 of file llvm/tools/opt/optdriver.cpp

  • MachineOperand & getBaseOperand (MachineInstr * MI)

    Defined at line 298 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • bool setAllocKind (Function & F, AllocFnKind K)

    Defined at line 298 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • basic_string buildDWODescription (StringRef Name, StringRef DWPName, StringRef DWOName)

    Defined at line 298 of file llvm/lib/DWP/DWP.cpp

  • void explainDbiHeaderOffset (LinePrinter & P, DbiStream & Dbi, uint32_t Offset)

    Defined at line 298 of file llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp

  • void streamMapping (yaml::IO & IO, RawContentStream & Stream)

    Defined at line 299 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • ValueAsMetadata * getAsMetadata (Value * V)

    Defined at line 299 of file llvm/lib/IR/DebugProgramInstruction.cpp

  • bool isNonVolatileStore (const Instruction * I)

    Defined at line 299 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • Cursor maybeLexIdentifier (Cursor C, MIToken & Token)

    Defined at line 299 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • bool accessedBetween (BatchAAResults & AA, MemoryLocation Loc, const MemoryUseOrDef * Start, const MemoryUseOrDef * End, Instruction ** SkippedLifetimeStart)

    Check for mod or ref of Loc between Start and End, excluding both boundaries.

    Start and End must be in the same block.

    If SkippedLifetimeStart is provided, skip over one clobbering lifetime.start

    intrinsic and store it inside SkippedLifetimeStart.

    Defined at line 299 of file llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

  • Constant * rebuildExtCst (const Constant * C, bool IsSExt, unsigned int NumBits, unsigned int NumElts, unsigned int SrcEltBitWidth)

    Defined at line 299 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • Type * getTypeWithoutPadding (Type * Ty)

    Defined at line 299 of file llvm/lib/Analysis/DXILResource.cpp

  • void printMemberHeader (raw_ostream & Out, uint64_t Pos, raw_ostream & StringTable, StringMap<uint64_t> & MemberNames, Kind Kind, bool Thin, const NewArchiveMember & M, time_point ModTime, uint64_t Size)

    Defined at line 299 of file llvm/lib/Object/ArchiveWriter.cpp

  • unique_ptr ParseBinOpRHS (int ExprPrec, unique_ptr LHS)

    binoprhs

    ::= ('+' primary)*

    Defined at line 299 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • bool importFunctions (const char * argv0, Module & DestModule)

    Import any functions requested via the -import option.

    Defined at line 299 of file llvm/tools/llvm-link/llvm-link.cpp

  • int getOutliningPenalty (ArrayRef Region, unsigned int NumInputs, unsigned int NumOutputs)

    Get the penalty score for outlining

    Defined at line 299 of file llvm/lib/Transforms/IPO/HotColdSplitting.cpp

  • Error updateAndRemoveSymbols (const CommonConfig & Config, const ELFConfig & ELFConfig, Object & Obj)

    Defined at line 299 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • void deduplicatePass (ArrayRef Worklist)

    Defined at line 300 of file llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp

  • Printable printFPOReg (const MCRegisterInfo * MRI, unsigned int LLVMReg)

    Defined at line 300 of file llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp

  • Expected ExtractLoops (BugDriver & BD, Expected<bool> (*)(BugDriver &, std::unique_ptr<Module>, std::unique_ptr<Module>) TestFn, std::vector<Function *> & MiscompiledFunctions)

    Given a reduced list of functions that still exposed the bug, check to see

    if we can extract the loops in the region without obscuring the bug. If so,

    it reduces the amount of code identified.

    Defined at line 300 of file llvm/tools/bugpoint/Miscompilation.cpp

  • StatCollection getChunkStats (const SymbolGroup & SG, StatCollection & CumulativeStats)

    Defined at line 301 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • basic_string formatNestedName (ArrayRef<StringRef> QualifiedNameComponents, StringRef TypeName)

    Defined at line 301 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void dropRegDescribedVar (int & RegVars, unsigned int RegNo, InlinedEntity Var)

    Claim that

    is not described by

    anymore.

    Defined at line 301 of file llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp

  • Error checkChars (StringRef Line)

    Checks that IHEX line contains valid characters.

    This allows converting hexadecimal data to integers

    without extra verification.

    Defined at line 301 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • void computeGUIDPreservedSymbols (const lto::InputFile & File, const int & PreservedSymbols, const Triple & TheTriple, int & GUIDs)

    Convert the PreservedSymbols map from "Name" based to "GUID" based.

    Defined at line 301 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • bool simplifyFunctionCFG (Function & F, const TargetTransformInfo & TTI, DominatorTree * DT, const SimplifyCFGOptions & Options)

    Defined at line 301 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  • basic_string getLabel (const GraphDiffRenderer::GraphT::EdgeValueType & E, StatType EL)

    Defined at line 301 of file llvm/tools/llvm-xray/xray-graph-diff.cpp

  • ConstantRange makeExactMulNSWRegion (const APInt & V)

    Exact mul nsw region for single element RHS.

    Defined at line 301 of file llvm/lib/IR/ConstantRange.cpp

  • const GlobalValueSummary * selectCallee (const ModuleSummaryIndex & Index, ArrayRef CalleeSummaryList, unsigned int Threshold, StringRef CallerModulePath, const GlobalValueSummary *& TooLargeOrNoInlineSummary, FunctionImporter::ImportFailureReason & Reason)

    Given a list of possible callee implementation for a call site, select one

    that fits the

    for function definition import. If none are

    found, the Reason will give the last reason for the failure (last, in the

    order of CalleeSummaryList entries). While looking for a callee definition,

    sets

    to the last seen too-large or noinline

    candidate; other modules may want to know the function summary or

    declaration even if a definition is not needed.

    FIXME: select "best" instead of first that fits. But what is "best"?

    - The smallest: more likely to be inlined.

    - The one with the least outgoing edges (already well optimized).

    - One from a module already being imported from in order to reduce the

    number of source modules parsed/linked.

    - One that has PGO data attached.

    - [insert you fancy metric here]

    Defined at line 301 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • bool containsBF16Type (const User & U)

    Defined at line 302 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • hash_code hashValueMapping (const RegisterBankInfo::PartialMapping * BreakDown, unsigned int NumBreakDowns)

    Defined at line 302 of file llvm/lib/CodeGen/RegisterBankInfo.cpp

  • optional getImageBaseAddress (const object::MachOObjectFile * MachO)

    Determine the virtual address that is considered the base address of mach-o

    object file.

    The base address of a mach-o file is the vmaddr of the "__TEXT" segment.

    Parameters

    MachO A mach-o object file we will search.

    Defined at line 302 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • bool isAlreadyMarked (const CompileUnit::DIEInfo & Info, DieOutputPlacement NewPlacement)

    Defined at line 302 of file llvm/lib/DWARFLinker/Parallel/DependencyTracker.cpp

  • bool tryToRecognizePopCount (Instruction & I)

    Try to recognize below function as popcount intrinsic.

    This is the "best" algorithm from

    http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel

    Also used in TargetLowering::expandCTPOP().

    int popcount(unsigned int i) {

    i = i - ((i >> 1)

    &

    0x55555555);

    i = (i

    &

    0x33333333) + ((i >> 2)

    &

    0x33333333);

    i = ((i + (i >> 4))

    &

    0x0F0F0F0F);

    return (i * 0x01010101) >> 24;

    }

    Defined at line 302 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • void ParseConstraint (StringRef CStr, CGIOperandList & Ops, const Record * Rec)

    Defined at line 302 of file llvm/utils/TableGen/Common/CodeGenInstruction.cpp

  • void splitCallSite (CallBase & CB, ArrayRef<std::pair<BasicBlock *, ConditionsTy>> Preds, DomTreeUpdater & DTU)

    For each (predecessor, conditions from predecessors) pair, it will split the

    basic block containing the call site, hook it up to the predecessor and

    replace the call instruction with new call instructions, which contain

    constraints based on the conditions from their predecessors.

    For example, in the IR below with an OR condition, the call-site can

    be split. In this case, Preds for Tail is [(Header, a == null),

    (TBB, a != null, b == null)]. Tail is replaced by 2 split blocks, containing

    CallInst1, which has constraints based on the conditions from Head and

    CallInst2, which has constraints based on the conditions coming from TBB.

    From :

    Header:

    %c = icmp eq i32* %a, null

    br i1 %c %Tail, %TBB

    TBB:

    %c2 = icmp eq i32* %b, null

    br i1 %c %Tail, %End

    Tail:

    %ca = call i1

    (i32* %a, i32* %b)

    to :

    Header: // PredBB1 is Header

    %c = icmp eq i32* %a, null

    br i1 %c %Tail-split1, %TBB

    TBB: // PredBB2 is TBB

    %c2 = icmp eq i32* %b, null

    br i1 %c %Tail-split2, %End

    Tail-split1:

    %ca1 = call

    (i32* null, i32* %b) // CallInst1

    br %Tail

    Tail-split2:

    %ca2 = call

    (i32* nonnull %a, i32* null) // CallInst2

    br %Tail

    Tail:

    %p = phi i1 [%ca1, %Tail-split1],[%ca2, %Tail-split2]

    Note that in case any arguments at the call-site are constrained by its

    predecessors, new call-sites with more constrained arguments will be

    created in createCallSitesOnPredicatedArgument().

    Defined at line 302 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • void darwinPrintSymbol (SymbolicFile & Obj, const NMSymbol & S, char * SymbolAddrStr, const char * printBlanks, const char * printDashes, const char * printFormat)

    darwinPrintSymbol() is used to print a symbol from a Mach-O file when the

    the OutputFormat is darwin or we are printing Mach-O symbols in hex. For

    the darwin format it produces the same output as darwin's nm(1) -m output

    and when printing Mach-O symbols in hex it produces the same output as

    darwin's nm(1) -x format.

    Defined at line 302 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • MachineOperand & getDispOperand (MachineInstr * MI)

    Defined at line 303 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • std::optional<StringRef> nameOrNone (const Value * V)

    Defined at line 303 of file llvm/lib/Transforms/Utils/MemoryOpRemark.cpp

  • template <typename F>
    void sortByKey (std::vector<TupleType> & Results, F Fn)

    Defined at line 303 of file llvm/tools/llvm-xray/xray-account.cpp

  • WasmTableType readTableType (WasmObjectFile::ReadContext & Ctx)

    Defined at line 303 of file llvm/lib/Object/WasmObjectFile.cpp

  • basic_string formatRegisterId (RegisterId Id, CPUType Cpu)

    Defined at line 303 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • const Value * getNoopInput (const Value * V, SmallVectorImpl<unsigned int> & ValLoc, unsigned int & DataBits, const TargetLoweringBase & TLI, const DataLayout & DL)

    Look through operations that will be free to find the earliest source of

    this value.

    Parameters

    ValLoc If V has aggregate type, we will be interested in a particular scalar component. This records its address; the reverse of this list gives a sequence of indices appropriate for an extractvalue to locate the important value. This value is updated during the function and on exit will indicate similar information for the Value returned.
    DataBits If this function looks through truncate instructions, this will record the smallest size attained.

    Defined at line 303 of file llvm/lib/CodeGen/Analysis.cpp

  • OverwriteResult isPartialOverwrite (const MemoryLocation & KillingLoc, const MemoryLocation & DeadLoc, int64_t KillingOff, int64_t DeadOff, Instruction * DeadI, int & IOL)

    Return 'OW_Complete' if a store to the 'KillingLoc' location completely

    overwrites a store to the 'DeadLoc' location, 'OW_End' if the end of the

    'DeadLoc' location is completely overwritten by 'KillingLoc', 'OW_Begin'

    if the beginning of the 'DeadLoc' location is overwritten by 'KillingLoc'.

    'OW_PartialEarlierWithFullLater' means that a dead (big) store was

    overwritten by a killing (smaller) store which doesn't write outside the big

    store's memory locations. Returns 'OW_Unknown' if nothing can be determined.

    NOTE: This function must only be called if both

    and

    belong to the same underlying object with valid

    and

    Defined at line 303 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • basic_string suffixed_name_or (Value * V, StringRef Suffix, StringRef DefaultName)

    Return the name of the value suffixed with the provided value, or if the

    value didn't have a name, the default value specified.

    Defined at line 304 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • basic_string streamValidate (RawContentStream & Stream)

    Defined at line 304 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • void cleanup (BlockFrequencyInfoImplBase & BFI)

    Clear all memory not needed downstream.

    Releases all memory not used downstream. In particular, saves Freqs.

    Defined at line 304 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • const char * LLVMGetSymbolName (LLVMSymbolIteratorRef SI)

    SymbolRef accessors

    Defined at line 304 of file llvm/lib/Object/Object.cpp

  • bool setLoopComponents (Value *& TC, Value *& TripCount, BinaryOperator *& Increment, SmallPtrSetImpl<Instruction *> & IterationInstructions)

    Defined at line 304 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • GenericValue executeICMP_UGE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 304 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • size_t llvm_blake3_simd_degree ()

    The dynamically detected SIMD degree of the current platform.

    Defined at line 304 of file llvm/lib/Support/BLAKE3/blake3_dispatch.c

  • unique_ptr createInterfaceFile (const Records & Slices, StringRef InstallName)

    Defined at line 304 of file llvm/lib/TextAPI/RecordsSlice.cpp

  • int LogError (const char * Str)

    Error* - These are little helper functions for error handling.

    Defined at line 305 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • bool isDefLiveOut (Register Reg, MachineBasicBlock * BB, const MachineRegisterInfo * MRI)

    Defined at line 305 of file llvm/lib/CodeGen/TailDuplicator.cpp

  • optional getElementCountForTy (VFISAKind ISA, const Type * Ty)

    Returns the 'natural' VF for a given scalar element type, based on the

    current architecture.

    For SVE (currently the only scalable architecture with a defined name

    mangling), we assume a minimum vector size of 128b and return a VF based on

    the number of elements of the given type which would fit in such a vector.

    Defined at line 305 of file llvm/lib/IR/VFABIDemangler.cpp

  • void UnescapeAliasString (std::string & Str)

    UnescapeAliasString - Supports literal braces in InstAlias asm string which

    are escaped with '

    \

    ' to avoid being interpreted as variants. Braces must

    be unescaped before c++ code is generated as (e.g.):

    AsmString = "foo \{$\x01\}";

    causes non-standard escape character warnings.

    Defined at line 305 of file llvm/utils/TableGen/AsmWriterEmitter.cpp

  • void annotateNonNullNoUndefBasedOnAccess (CallInst * CI, ArrayRef ArgNos)

    Defined at line 305 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void emitGetOperandIdxName (raw_ostream & OS, const int & OperandNameToID, const int & OperandMap, unsigned int MaxNumOperands, unsigned int NumOperandNames)

    Defined at line 305 of file llvm/utils/TableGen/InstrInfoEmitter.cpp

  • bool mergeIntoSinglePredecessor_v2 (Function & F, DominatorTree & DT)

    Merge basic blocks into their single predecessor, if their predecessor has a

    single successor. This is the second version and does preserve the

    DominatorTree.

    Defined at line 305 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • bool matches (const ValueMapping & LM, const ValueMapping & RM)

    Defined at line 305 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • bool printFMAComments (const MCInst * MI, raw_ostream & OS, const MCInstrInfo & MCII)

    Defined at line 305 of file llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp

  • void initializeStackFrameLayoutAnalysisLegacyPassOnce (PassRegistry & Registry)

    Defined at line 306 of file llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp

  • void initializeCFGuardPassOnce (PassRegistry & Registry)

    Defined at line 306 of file llvm/lib/Transforms/CFGuard/CFGuard.cpp

  • bool checkConstHashCompatible (const DenseMap<IndexPair, stable_hash> & OldInstOpndIndexToConstHash, const DenseMap<IndexPair, stable_hash> & CurrInstOpndIndexToConstHash)

    Check if the old merged/optimized IndexOperandHashMap is compatible with

    the current IndexOperandHashMap. An operand hash may not be stable across

    different builds due to varying modules combined. To address this, we relax

    the hash check condition by comparing Const hash patterns instead of absolute

    hash values. For example, let's assume we have three Consts located at idx1,

    idx3, and idx6, where their corresponding hashes are hash1, hash2, and hash1

    in the old merged map below:

    Old (Merged): [(idx1, hash1), (idx3, hash2), (idx6, hash1)]

    Current: [(idx1, hash1'), (idx3, hash2'), (idx6, hash1')]

    If the current function also has three Consts in the same locations,

    with hash sequences hash1', hash2', and hash1' where the first and third

    are the same as the old hash sequences, we consider them matched.

    Defined at line 306 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • void explicateNamespace (xmlNsPtr PrefixDef, xmlNodePtr Node)

    For the given explicit prefix-definition of a namespace, travel downwards

    from a node recursively, and for every implicit, inherited default usage of

    that namespace replace it with that explicit prefix use. This is important

    when namespace overriding occurs when merging, so that elements unique to a

    namespace will still stay in that namespace.

    Defined at line 306 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • void setDwarfDebugProducer ()

    Defined at line 307 of file llvm/tools/llvm-mc/llvm-mc.cpp

  • void reportError (Error Err, StringRef Filename)

    Defined at line 307 of file llvm/tools/llc/llc.cpp

  • unsigned int getFloorFullVectorNumberOfElements (const TargetTransformInfo & TTI, Type * Ty, unsigned int Sz)

    Returns the number of elements of the given type

    not greater than

    which forms type, which splits by

    into whole vector types during

    legalization.

    Defined at line 307 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • const Value * stripAndAccumulateOffsets (Attributor & A, const AbstractAttribute & QueryingAA, const Value * Val, const DataLayout & DL, APInt & Offset, bool GetMinOffset, bool AllowNonInbounds, bool UseAssumed)

    Defined at line 307 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • template <AggregationType AggType>
    std::size_t GetValueForStack (const StackTrieNode * Node)

    Defined at line 308 of file llvm/tools/llvm-xray/xray-stacks.cpp

  • iterator_range getShapedOperandsForInst (Instruction * I)

    Return an iterator over the operands of

    that should share shape

    information with

    Defined at line 308 of file llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

  • basic_string stringify (std::pair<const omp::Clause *, tomp::ErrorCode> & ER)

    Defined at line 308 of file llvm/unittests/Frontend/OpenMPDecompositionTest.cpp

  • template <typename value_type>
    raw_ostream & operator<< (raw_ostream & OS, const binary_le_impl<value_type> & BLE)

    Defined at line 308 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • Error dumpSectionToFile (StringRef SecName, StringRef Filename, StringRef InputFilename, Object & Obj)

    Defined at line 308 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • void initializeAssumptionCacheTrackerPassOnce (PassRegistry & Registry)

    Defined at line 309 of file llvm/lib/Analysis/AssumptionCache.cpp

  • void getVDefInterval (const MachineInstr & MI, LiveIntervals & LIS)

    Defined at line 309 of file llvm/lib/CodeGen/InlineSpiller.cpp

  • int LogErrorP (const char * Str)

    Defined at line 310 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • LLVMBool LLVMExecutionEngineGetErrMsg (LLVMExecutionEngineRef EE, char ** OutError)

    Returns true on error, false on success. If true is returned then the error

    message is copied to OutStr and cleared in the ExecutionEngine instance.

    Defined at line 310 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • unsigned int getColumns (int FileID)

    Defined at line 310 of file llvm/lib/Support/Unix/Process.inc

  • AccelTableKind computeAccelTableKind (unsigned int DwarfVersion, bool GenerateTypeUnits, DebuggerKind Tuning, const Triple & TT)

    Defined at line 310 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void processConstantStringArg (StringData * SD, IRBuilder<> & Builder, SmallVectorImpl<Value *> & WhatToStore)

    Prepare constant string argument to push onto the buffer

    Defined at line 310 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • void GetCostForDef (const ScheduleDAGSDNodes::RegDefIter & RegDefPos, const TargetLowering * TLI, const TargetInstrInfo * TII, const TargetRegisterInfo * TRI, unsigned int & RegClass, unsigned int & Cost, const MachineFunction & MF)

    GetCostForDef - Looks up the register class and cost for a given definition.

    Typically this just means looking up the representative register class,

    but for untyped values (MVT::Untyped) it means inspecting the node's

    opcode to determine what register class is being generated.

    Defined at line 310 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • void convertFunctionLineTable (OutputAggregator & Out, CUInfo & CUI, DWARFDie Die, GsymCreator & Gsym, FunctionInfo & FI)

    Defined at line 310 of file llvm/lib/DebugInfo/GSYM/DwarfTransformer.cpp

  • basic_string formatModuleDetailKind (DebugSubsectionKind K)

    Defined at line 311 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • void initializeX86FPStackifierLegacyPassOnce (PassRegistry & Registry)

    Defined at line 311 of file llvm/lib/Target/X86/X86FloatingPoint.cpp

  • bool mustBeUnreachableFunction (const Function & F)

    Returns true if the function definition must be unreachable.

    Note if this helper function returns true, `F` is guaranteed

    to be unreachable; if it returns false, `F` might still

    be unreachable but not covered by this helper function.

    Defined at line 311 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • const TargetRegisterClass * firstCommonClass (const uint32_t * A, const uint32_t * B, const TargetRegisterInfo * TRI)

    Defined at line 311 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp

  • bool isRelevantAddressingMode (MachineInstr * MI)

    Relevant addressing modes contain only base register and immediate

    displacement or frameindex and immediate displacement.

    TODO: Consider expanding to other addressing modes in the future

    Defined at line 311 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • bool isAddressExpression (const Value & V, const DataLayout & DL, const TargetTransformInfo * TTI)

    Returns true if V is an address expression.

    TODO: Currently, we only consider:

    - arguments

    - phi, bitcast, addrspacecast, and getelementptr operators

    Defined at line 311 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • Cursor maybeLexMachineBasicBlock (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 311 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • Error readSection (WasmSection & Section, WasmObjectFile::ReadContext & Ctx, WasmSectionOrderChecker & Checker)

    Defined at line 311 of file llvm/lib/Object/WasmObjectFile.cpp

  • IdentifyingPassPtr overridePass (AnalysisID StandardID, IdentifyingPassPtr TargetID)

    Allow standard passes to be disabled by the command line, regardless of who

    is adding the pass.

    StandardID is the pass identified in the standard pass pipeline and provided

    to addPass(). It may be a target-specific ID in the case that the target

    directly adds its own pass, but in that case we harmlessly fall through.

    TargetID is the pass that the target has configured to override StandardID.

    StandardID may be a pseudo ID. In that case TargetID is the name of the real

    pass to run. This allows multiple options to control a single pass depending

    on where in the pipeline that pass is added.

    Defined at line 311 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • lto_module_t lto_module_create_in_codegen_context (const void * mem, size_t length, const char * path, lto_code_gen_t cg)

    Loads an object file in the codegen context.

    Loads an object file into the same context as

    The module is safe to

    add using

    Returns NULL on error (check lto_get_error_message() for details).

    Defined at line 312 of file llvm/tools/lto/lto.cpp

  • void commitFpm (WritableBinaryStream & MsfBuffer, const MSFLayout & Layout, BumpPtrAllocator & Allocator)

    Defined at line 312 of file llvm/lib/DebugInfo/MSF/MSFBuilder.cpp

  • std::optional<BCECmp> visitICmp (const ICmpInst *const CmpI, Predicate ExpectedPredicate, BaseIdentifier & BaseId)

    Visit the given comparison. If this is a comparison between two valid

    BCE atoms, returns the comparison.

    Defined at line 312 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • ArchiveOperation parseCommandLine ()

    Parse the command line options as presented and return the operation

    specified. Process all modifiers and check to make sure that constraints on

    modifier/operation pairs have not been violated.

    Defined at line 312 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void testErrorFilename (const llvm::SMDiagnostic & Error, void * )

    Test YAML filename handling.

    Defined at line 313 of file llvm/unittests/Support/YAMLIOTest.cpp

  • int AsLexInput (SourceMgr & SrcMgr, MCAsmInfo & MAI, raw_ostream & OS)

    Defined at line 313 of file llvm/tools/llvm-mc/llvm-mc.cpp

  • void analyzeParsePointLiveness (DominatorTree & DT, GCPtrLivenessData & OriginalLivenessData, CallBase * Call, PartiallyConstructedSafepointRecord & Result, GCStrategy * GC)

    Conservatively identifies any definitions which might be live at the

    given instruction. The analysis is performed immediately before the

    given instruction. Values defined by that instruction are not considered

    live. Values used by that instruction are considered live.

    Defined at line 313 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • const Module * getModuleFromVal (const Value * V)

    Defined at line 313 of file llvm/lib/IR/AsmWriter.cpp

  • void markCoroutineAsDone (int & Builder, const coro::Shape & Shape, Value * FramePtr)

    Mark a coroutine as done, which implies that the coroutine is finished and

    never gets resumed.

    In resume-switched ABI, the done state is represented by storing zero in

    ResumeFnAddr.

    NOTE: We couldn't omit the argument `FramePtr`. It is necessary because the

    pointer to the frame in splitted function is not stored in `Shape`.

    Defined at line 313 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • const BasicBlock * getFirstFunctionBlock (const Function * Func)

    Defined at line 314 of file llvm/lib/IR/DiagnosticInfo.cpp

  • Error getError (const Twine & Message)

    Defined at line 314 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • void emitDXILVersions (const RecordKeeper & Records, raw_ostream & OS)

    Emit a list valid DXIL Version records

    Defined at line 314 of file llvm/utils/TableGen/DXILEmitter.cpp

  • basic_string computeSparcDataLayout (const Triple & T)

    Defined at line 314 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • int GetOutputStream (OSType OS)

    Defined at line 314 of file llvm/tools/llc/llc.cpp

  • void initializeCallGraphWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 315 of file llvm/lib/Analysis/CallGraph.cpp

  • void initializeX86OptimizeLEAPassPassOnce (PassRegistry & Registry)

    Defined at line 315 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp

  • basic_string formatModuleDetailKind (SymbolKind K)

    Defined at line 315 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • void addRegDescribedVar (int & RegVars, unsigned int RegNo, InlinedEntity Var)

    Claim that

    is now described by

    .

    Defined at line 315 of file llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp

  • int computeGUIDPreservedSymbols (const lto::InputFile & File, const int & PreservedSymbols, const Triple & TheTriple)

    Defined at line 315 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • Error parseSize (StringRef Str, unsigned int & BitWidth, StringRef Name)

    Attempts to parse a size component of a specification.

    Defined at line 315 of file llvm/lib/IR/DataLayout.cpp

  • uint64_t LLVMGetSymbolAddress (LLVMSymbolIteratorRef SI)

    Defined at line 315 of file llvm/lib/Object/Object.cpp

  • Predicate getFPPredicateFromMD (const Value * Op)

    Defined at line 315 of file llvm/lib/IR/IntrinsicInst.cpp

  • void executionSessionLookupHandlerCallback (LLVMErrorRef Err, LLVMOrcCSymbolMapPairs Result, size_t NumPairs, void * RawCtx)

    Defined at line 315 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • FunctionSummary * calculatePrevailingSummary (ValueInfo VI, int & CachedPrevailingSummary, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> IsPrevailing)

    Compute definitive function attributes for a function taking into account

    prevailing definitions and linkage types

    Defined at line 315 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool checkLoopsStructure (const Loop & OuterLoop, const Loop & InnerLoop, ScalarEvolution & SE)

    Determine whether the loops structure violates basic requirements for

    perfect nesting:

    - the inner loop should be the outer loop's only child

    - the outer loop header should 'flow' into the inner loop preheader

    or jump around the inner loop to the outer loop latch

    - if the inner loop latch exits the inner loop, it should 'flow' into

    the outer loop latch.

    Returns true if the loop structure satisfies the basic requirements and

    false otherwise.

    Defined at line 315 of file llvm/lib/Analysis/LoopNestAnalysis.cpp

  • bool isExitingLoop (const MachineLoop * From, const MachineLoop * To)

    We never allow traces that leave loops, but we do allow traces to enter

    nested loops. We also never allow traces to contain back-edges.

    This means that a loop header can never appear above the center block of a

    trace, except as the trace head. Below the center block, loop exiting edges

    are banned.

    Return true if an edge from the From loop to the To loop is leaving a loop.

    Either of To and From can be null.

    Defined at line 316 of file llvm/lib/CodeGen/MachineTraceMetrics.cpp

  • void streamMapping (yaml::IO & IO, MemoryInfoListStream & Stream)

    Defined at line 316 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • unsigned int getPHISrcRegOpIdx (MachineInstr * MI, MachineBasicBlock * SrcBB)

    Defined at line 316 of file llvm/lib/CodeGen/TailDuplicator.cpp

  • void maybeHandleGlobals (Module & M)

    Defined at line 316 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • bool isNOREXRegClass (const Record * Op)

    Defined at line 317 of file llvm/utils/TableGen/X86FoldTablesEmitter.cpp

  • void deleteDeadInstruction (Instruction * I)

    Defined at line 317 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • Expected hasObjCCategory (BitstreamCursor & Stream)

    Defined at line 317 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • optional computeShapeInfoForInst (Instruction * I, const DenseMap<Value *, ShapeInfo> & ShapeMap)

    Return the ShapeInfo for the result of

    it it can be determined.

    Defined at line 317 of file llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp

  • void scalarizeMaskedStore (const DataLayout & DL, bool HasBranchDivergence, CallInst * CI, DomTreeUpdater * DTU, bool & ModifiedDT)

    Translate a masked store intrinsic, like

    void

    .masked.store(

    <

    16 x i32> %src,

    <

    16 x i32>* %addr,

    <

    16 x i1> %mask)

    to a chain of basic blocks, that stores element one-by-one if

    the appropriate mask bit is set

    %1 = bitcast i8* %addr to i32*

    %2 = extractelement

    <

    16 x i1> %mask, i32 0

    br i1 %2, label %cond.store, label %else

    cond.store: ; preds = %0

    %3 = extractelement

    <

    16 x i32> %val, i32 0

    %4 = getelementptr i32* %1, i32 0

    store i32 %3, i32* %4

    br label %else

    else: ; preds = %0, %cond.store

    %5 = extractelement

    <

    16 x i1> %mask, i32 1

    br i1 %5, label %cond.store1, label %else2

    cond.store1: ; preds = %else

    %6 = extractelement

    <

    16 x i32> %val, i32 1

    %7 = getelementptr i32* %1, i32 1

    store i32 %6, i32* %7

    br label %else2

    . . .

    Defined at line 317 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • template <typename value_type>
    binary_le_impl<value_type> binary_le (value_type V)

    Defined at line 318 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • bool AnyAliasLiveIn (const TargetRegisterInfo * TRI, MachineBasicBlock * MBB, Register Reg)

    Return true if any register aliasing

    is live-in into

    Defined at line 318 of file llvm/lib/CodeGen/ImplicitNullChecks.cpp

  • Error getErrorForInvalidExt (StringRef ExtName)

    Defined at line 318 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • GenericValue executeICMP_SGE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 318 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • void diagnosePossiblyInvalidConstraint (LLVMContext & Ctx, const Value * V, const Twine & ErrMsg)

    Defined at line 318 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • int computeHostNumHardwareThreads ()

    Defined at line 318 of file llvm/lib/Support/Unix/Threading.inc

  • int import (ObjectStore & FromCAS, ObjectStore & ToCAS, ArrayRef<std::string> Objects)

    Defined at line 318 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • void applyCommandLineOverridesToOptions (SimplifyCFGOptions & Options)

    Command-line settings override compile-time settings.

    Defined at line 318 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  • SmallVector<OwningBinary<Binary>, 1> readInputBinaries (LLVMContext & LLVMCtx, ArrayRef<InputFile> InputFiles)

    Defined at line 318 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • std::pair<SDValue, SDNode *> lowerCallFromStatepointLoweringInfo (SelectionDAGBuilder::StatepointLoweringInfo & SI, SelectionDAGBuilder & Builder)

    Extract call from statepoint, lower it and return pointer to the

    call node. Also update NodeMap so that getValue(statepoint) will

    reference lowered call result

    Defined at line 318 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • void computeFunctionSummary (ModuleSummaryIndex & Index, const Module & M, const Function & F, BlockFrequencyInfo * BFI, ProfileSummaryInfo * PSI, DominatorTree & DT, bool HasLocalsInUsedOrAsm, DenseSet<GlobalValue::GUID> & CantBePromoted, bool IsThinLTO, function GetSSICallback)

    Defined at line 318 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • uint64_t XXH3_len_129to240_64b (const uint8_t * input, size_t len, const uint8_t * secret, uint64_t seed)

    Defined at line 319 of file llvm/lib/Support/xxhash.cpp

  • basic_string getLabel (const GraphDiffRenderer::GraphT::VertexValueType & V, StatType VL, int TrunLen)

    Defined at line 319 of file llvm/tools/llvm-xray/xray-graph-diff.cpp

  • void streamMapping (yaml::IO & IO, MemoryListStream & Stream)

    Defined at line 320 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • bool isMustExecuteIn (const Instruction & I, Loop * L, DominatorTree * DT)

    Defined at line 320 of file llvm/lib/Analysis/MustExecute.cpp

  • bool prepareDwarfEH (CodeGenOptLevel OptLevel, Function & F, const TargetLowering & TLI, DominatorTree * DT, const TargetTransformInfo * TTI, const Triple & TargetTriple)

    Defined at line 320 of file llvm/lib/CodeGen/DwarfEHPrepare.cpp

  • void computeBlocksDominatingExits (Loop & L, const DominatorTree & DT, ArrayRef ExitBlocks, SmallSetVector<BasicBlock *, 8> & BlocksDominatingExits)

    Compute the set of BasicBlocks in the loop `L` dominating at least one exit.

    Defined at line 320 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • void processOptionImpl (cl::opt<bool> & O, const cl::opt<bool> & Default)

    Defined at line 321 of file llvm/tools/llvm-mca/llvm-mca.cpp

  • unsigned int HashEndOfMBB (const MachineBasicBlock & MBB)

    HashEndOfMBB - Hash the last instruction in the MBB.

    Defined at line 321 of file llvm/lib/CodeGen/BranchFolding.cpp

  • optional getRecurrences (BasicBlock * LoopLatch, const PHINode * IndVar, const Loop & L)

    Iterates over all the phis in

    and attempts to extract a

    Conditional Recurrence and an optional Simple Recurrence.

    Defined at line 321 of file llvm/lib/Analysis/HashRecognize.cpp

  • bool verifyTripCount (Value * RHS, Loop * L, SmallPtrSetImpl<Instruction *> & IterationInstructions, PHINode *& InductionPHI, Value *& TripCount, BinaryOperator *& Increment, BranchInst *& BackBranch, ScalarEvolution * SE, bool IsWidened)

    Given the RHS of the loop latch compare instruction, verify with SCEV

    that this is indeed the loop tripcount.

    TODO: This used to be a straightforward check but has grown to be quite

    complicated now. It is therefore worth revisiting what the additional

    benefits are of this (compared to relying on canonical loops and pattern

    matching).

    Defined at line 321 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • void transformScalarShuffleIndiciesToVector (unsigned int VecTyNumElements, SmallVectorImpl<int> & Mask)

    Defined at line 322 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • unsigned int getFPReg (const MachineOperand & MO)

    getFPReg - Return the X86::FPx register number for the specified operand.

    For example, this returns 3 for X86::FP3.

    Defined at line 323 of file llvm/lib/Target/X86/X86FloatingPoint.cpp

  • GenericValue lle_X_atexit (FunctionType * FT, ArrayRef Args)

    void atexit(Function*)

    Defined at line 323 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • template <class ELFT>
    Expected<ELFObjectFile<ELFT>> toBinary (SmallVectorImpl<char> & Storage, StringRef Yaml)

    Defined at line 323 of file llvm/unittests/Object/ELFObjectFileTest.cpp

  • bool writtenBetween (MemorySSA * MSSA, BatchAAResults & AA, MemoryLocation Loc, const MemoryUseOrDef * Start, const MemoryUseOrDef * End)

    Check for mod of Loc between Start and End, excluding both boundaries.

    Start and End can be in different blocks.

    Defined at line 323 of file llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

  • BasicBlock * findIBRPredecessor (BasicBlock * BB, SmallVectorImpl<BasicBlock *> & OtherPreds)

    Return the unique indirectbr predecessor of a block. This may return null

    even if such a predecessor exists, if it's not useful for splitting.

    If a predecessor is found, OtherPreds will contain all other (non-indirectbr)

    predecessors of BB.

    Defined at line 323 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp

  • template <typename CallbackT>
    void iterateOneModule (PDBFile & File, LinePrinter & P, const DbiModuleList & Modules, uint32_t I, uint32_t Digits, uint32_t IndentLevel, CallbackT Callback)

    Defined at line 323 of file llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp

  • void streamMapping (yaml::IO & IO, Memory64ListStream & Stream)

    Defined at line 324 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • bool isAlreadyMarked (const UnitEntryPairTy & Entry, DieOutputPlacement NewPlacement)

    Defined at line 324 of file llvm/lib/DWARFLinker/Parallel/DependencyTracker.cpp

  • DebugVariable getAggregateVariable (DbgVariableRecord * DVR)

    Defined at line 324 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • Error createError (StringRef Name, Error E)

    Defined at line 324 of file llvm/lib/DWP/DWP.cpp

  • void initializeMachineSinkingLegacyPassOnce (PassRegistry & Registry)

    Defined at line 324 of file llvm/lib/CodeGen/MachineSink.cpp

  • bool DumpAndSkipDataInCode (uint64_t PC, const uint8_t * bytes, DiceTable & Dices, uint64_t & InstSize)

    Defined at line 324 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool TypesAreContradictory (MVT T1, MVT T2)

    isContradictoryImpl Implementations.

    Defined at line 324 of file llvm/utils/TableGen/Common/DAGISelMatcher.cpp

  • optional getScalableECFromSignature (const FunctionType * Signature, VFISAKind ISA, const SmallVectorImpl<VFParameter> & Params)

    Extract the VectorizationFactor from a given function signature, based

    on the widest scalar element types that will become vector parameters.

    Defined at line 324 of file llvm/lib/IR/VFABIDemangler.cpp

  • template <size_t NumBytes>
    raw_ostream & operator<< (raw_ostream & OS, const zeros_impl<NumBytes> & )

    Defined at line 325 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • Matcher * FindNodeWithKind (Matcher * M, KindTy Kind)

    FindNodeWithKind - Scan a series of matchers looking for a matcher with a

    specified kind. Return null if we didn't find one otherwise return the

    matcher.

    Defined at line 325 of file llvm/utils/TableGen/DAGISelMatcherOpt.cpp

  • SmallVector ComputeTypeSignature (const CodeGenIntrinsic & Int)

    Computes type signature of the intrinsic

    Defined at line 325 of file llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp

  • void parseBad (StringRef Input, const char * ErrorMsg)

    Defined at line 325 of file llvm/unittests/Remarks/BitstreamRemarksParsingTest.cpp

  • LLVMBool LLVMTargetMachineEmitToFile (LLVMTargetMachineRef T, LLVMModuleRef M, const char * Filename,  codegen, char ** ErrorMessage)

    Emits an asm or object file for the given module to the filename. This

    wraps several c++ only classes (among them a file stream). Returns any

    error in ErrorMessage. Use LLVMDisposeMessage to dispose the message.

    Defined at line 325 of file llvm/lib/Target/TargetMachineC.cpp

  • const RecordRecTy * resolveRecordTypes (const RecordRecTy * T1, const RecordRecTy * T2)

    Defined at line 325 of file llvm/lib/TableGen/Record.cpp

  • void printAllUnwindCodes (ArrayRef UCs)

    Defined at line 325 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • int codegenModule (Module & TheModule, TargetMachine & TM)

    Defined at line 325 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • void canonicalizePHIOperands (MachineFunction & MF)

    Removing duplicate PHI operands to leave the PHI in a canonical and

    predictable form.

    FIXME: It's really frustrating that we have to do this, but SSA-form in MIR

    isn't what you might expect. We may have multiple entries in PHI nodes for

    a single predecessor. This makes CFG-updating extremely complex, so here we

    simplify all PHI nodes to a model even simpler than the IR's model: exactly

    one entry per predecessor, regardless of how many edges there are.

    Defined at line 325 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp

  • BaseType getBaseType (const Value * Val)

    Return the baseType for Val which states whether Val is exclusively

    derived from constant/null, or not exclusively derived from constant.

    Val is exclusively derived off a constant base when all operands of phi and

    selects are derived off a constant base.

    Defined at line 325 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • uint64_t LLVMGetSymbolSize (LLVMSymbolIteratorRef SI)

    Defined at line 326 of file llvm/lib/Object/Object.cpp

  • void lto_module_dispose (lto_module_t mod)

    Frees all memory internally allocated by the module.

    Upon return the lto_module_t is no longer valid.

    Defined at line 326 of file llvm/tools/lto/lto.cpp

  • pair getAggregate (const DebugVariable & Var)

    Defined at line 326 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • bool isImplicitlyDefined (Register VirtReg, const MachineRegisterInfo & MRI)

    Return true if all defs of VirtReg are implicit-defs.

    This includes registers with no defs.

    Defined at line 326 of file llvm/lib/CodeGen/PHIElimination.cpp

  • void getRegsUsedByPHIs (const MachineBasicBlock & BB, int * UsedByPhi)

    Remember which registers are used by phis in this block. This is

    used to determine which registers are liveout while modifying the

    block (which is why we need to copy the information).

    Defined at line 326 of file llvm/lib/CodeGen/TailDuplicator.cpp

  • bool constantFoldCmp (CmpInst * Cmp, LazyValueInfo * LVI)

    See if LazyValueInfo's ability to exploit edge conditions or range

    information is sufficient to prove this comparison. Even for local

    conditions, this can sometimes prove conditions instcombine can't by

    exploiting range information.

    Defined at line 326 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void processViewOptions (bool IsOutOfOrder)

    Defined at line 326 of file llvm/tools/llvm-mca/llvm-mca.cpp

  • bool shouldPinPassToLegacyPM (StringRef Pass)

    For use in NPM transition. Currently this contains most codegen-specific

    passes. Remove passes from here when porting to the NPM.

    TODO: use a codegen version of PassRegistry.def/PassBuilder::is*Pass() once

    it exists.

    Defined at line 326 of file llvm/tools/opt/optdriver.cpp

  • bool isInefficientLEAReg (Register Reg)

    Defined at line 327 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • bool instructionDoesNotReturn (const Instruction & I)

    Defined at line 327 of file llvm/lib/Analysis/CFG.cpp

  • void interChangeDependencies (CharMatrix & DepMatrix, unsigned int FromIndx, unsigned int ToIndx)

    A loop is moved from index 'from' to an index 'to'. Update the Dependence

    matrix by exchanging the two columns.

    Defined at line 327 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • template <typename AliasAnalysisType>
    bool instructionClobbersQuery (MemoryDef * MD, const MemoryUseOrDef * MU, const MemoryLocOrCall & UseMLOC, AliasAnalysisType & AA)

    Defined at line 327 of file llvm/lib/Analysis/MemorySSA.cpp

  • void annotateNonNullAndDereferenceable (CallInst * CI, ArrayRef ArgNos, Value * Size, const DataLayout & DL)

    Defined at line 327 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void clobberRegEntries (InlinedEntity Var, unsigned int RegNo, const MachineInstr & ClobberingInstr, int & LiveEntries, DbgValueHistoryMap & HistMap, SmallVectorImpl<Register> & FellowRegisters)

    Create a clobbering entry and end all open debug value entries

    for

    that are described by

    using that entry. Inserts into

    the set of Registers that were also used to describe

    alongside

    Defined at line 327 of file llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp

  • const char * lto_module_get_target_triple (lto_module_t mod)

    Returns triple string which the object module was compiled under.

    Defined at line 328 of file llvm/tools/lto/lto.cpp

  • bool isGEPFoldable (GetElementPtrInst * GEP, const TargetTransformInfo * TTI)

    Defined at line 328 of file llvm/lib/Transforms/Scalar/NaryReassociate.cpp

  • unsigned int ComputeNumSignBits (const Value * V, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 328 of file llvm/lib/Analysis/ValueTracking.cpp

  • basic_string streamValidate (Memory64ListStream & Stream)

    Defined at line 328 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • Error tryReadFileAndProcessRemarks (StringRef InputFileName, StringMap<InstCountAndStackSize> & FuncNameToSizeInfo)

    Wrapper function for readFileAndProcessRemarks which handles errors.

    Parameters

    InputFileName [in] - Name of file to read from.
    FuncNameToSizeInfo [out] - Populated with information from size remarks in the input file.

    Defined at line 328 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • void emitDXILOpCodes (ArrayRef<DXILOperationDesc> Ops, raw_ostream & OS)

    Emit a mapping of DXIL opcode to opname

    Defined at line 328 of file llvm/utils/TableGen/DXILEmitter.cpp

  • void emitInstBits (raw_ostream & IS, raw_ostream & SS, const APInt & Bits, unsigned int & Index)

    Defined at line 328 of file llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp

  • bool checkConstLocationCompatible (const StableFunctionMap::StableFunctionEntry & SF, const IndexInstrMap & IndexInstruction, const ParamLocsVecTy & ParamLocsVec)

    Validate the locations pointed by a param has the same hash and Constant.

    Defined at line 328 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • Error mergeNamespaces (xmlNodePtr OriginalNode, xmlNodePtr AdditionalNode)

    Perform the namespace merge between two nodes.

    Defined at line 328 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • Constant * rebuildSExtCst (const Constant * C, unsigned int NumBits, unsigned int NumElts, unsigned int SrcEltBitWidth)

    Defined at line 329 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • uint16_t toSecMapFlags (uint32_t Flags)

    Defined at line 329 of file llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp

  • bool findDemandedEltsBySingleUser (Value * V, Instruction * UserInstr, APInt & UnionUsedElts)

    Find elements of V demanded by UserInstr. If returns false, we were not able

    to determine all elements.

    Defined at line 329 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • APInt getVariantMatchScore (const VariantMatchInfo & VMI, const OMPContext & Ctx, SmallVectorImpl<unsigned int> & ConstructMatches)

    Defined at line 329 of file llvm/lib/Frontend/OpenMP/OMPContext.cpp

  • bool countsAsInstruction (const MachineInstr & MI)

    Whether MI should be counted as an instruction when calculating common tail.

    Defined at line 330 of file llvm/lib/CodeGen/BranchFolding.cpp

  • void error (const Twine & Msg)

    Defined at line 330 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • void printUnknownLineInfo (std::string ModuleName, DIPrinter & Printer)

    Defined at line 330 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • void testBlobsParallel1 (ObjectStore & CAS, uint64_t BlobSize)

    Defined at line 330 of file llvm/unittests/CAS/ObjectStoreTest.cpp

  • bool shouldCoalesceFragments (Function & F)

    Defined at line 330 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • int fillCommandLineSymbols (MCAsmParser & Parser)

    Defined at line 330 of file llvm/tools/llvm-mc/llvm-mc.cpp

  • Error addSection (const NewSectionInfo & NewSection, Object & Obj)

    Defined at line 330 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • Error registerJITLoaderPerfStartImpl ()

    Defined at line 330 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • uint64_t LLVMGetRelocationOffset (LLVMRelocationIteratorRef RI)

    RelocationRef accessors

    Defined at line 331 of file llvm/lib/Object/Object.cpp

  • Error createAllocatorOutOfSpaceError ()

    Defined at line 331 of file llvm/lib/CAS/MappedFileRegionArena.cpp

  • void initializeXRayInstrumentationLegacyPassOnce (PassRegistry & Registry)

    Defined at line 331 of file llvm/lib/CodeGen/XRayInstrumentation.cpp

  • void normalizeTimeStat (GraphRenderer::TimeStat & S, double CycleFrequency)

    A Helper function for normalizeStatistics which normalises a single

    TimeStat element.

    Defined at line 331 of file llvm/tools/llvm-xray/xray-graph.cpp

  • template <typename Kind>
    void printModuleDetailStats (LinePrinter & P, StringRef Label, const StatCollection & Stats)

    Defined at line 331 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • Error handleCompressedSection (std::deque<SmallString<32>> & UncompressedSections, SectionRef Sec, StringRef Name, StringRef & Contents)

    Defined at line 331 of file llvm/lib/DWP/DWP.cpp

  • MachineInstrBuilder mergeVectorRegsToResultRegs (MachineIRBuilder & B, ArrayRef<Register> DstRegs, ArrayRef<Register> SrcRegs)

    Pack values

    to cover the vector type result

    Defined at line 331 of file llvm/lib/CodeGen/GlobalISel/CallLowering.cpp

  • template <typename T>
    zeros_impl<sizeof(T)> zeros (const T & )

    Defined at line 332 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • optional getImageBaseAddress (object::ObjectFile & Obj)

    Determine the virtual address that is considered the base address of an

    object file.

    Since GSYM files are used for symbolication, many clients will need to

    easily adjust addresses they find in stack traces so the lookups happen

    on unslid addresses from the original object file. If the base address of

    a GSYM file is set to the base address of the image, then this address

    adjusting is much easier.

    Parameters

    Obj An object file we will search.

    Defined at line 332 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • void removeSectionByPatternImpl (const char * YamlCreationString, function_ref IsValidFormat, StringRef SectionWildcard, StringRef SectionName)

    Defined at line 332 of file llvm/unittests/ObjCopy/ObjCopyTest.cpp

  • std::optional<IntegerIV> tryConvertToIntegerIV (const FloatingPointIV & FPIV)

    Ensure that the floating-point IV can be converted to a semantics-preserving

    signed 32-bit integer IV.

    Returns a IntegerIV struct if possible, std::nullopt otherwise.

    Defined at line 332 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • Error getExtensionVersion (StringRef Ext, StringRef In, unsigned int & Major, unsigned int & Minor, unsigned int & ConsumeLength, bool EnableExperimentalExtension, bool ExperimentalExtensionVersionCheck)

    Extensions may have a version number, and may be separated by

    an underscore '_' e.g.: rv32i2_m2.

    Version number is divided into major and minor version numbers,

    separated by a 'p'. If the minor version is 0 then 'p0' can be

    omitted from the version string. E.g., rv32i2p0, rv32i2, rv32i2p1.

    Defined at line 332 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • bool isARegister (MCRegister Reg)

    Defined at line 333 of file llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimization.cpp

  • GenericValue lle_X_exit (FunctionType * FT, ArrayRef Args)

    void exit(int)

    Defined at line 333 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • Constant * rebuildZExtCst (const Constant * C, unsigned int NumBits, unsigned int NumElts, unsigned int SrcEltBitWidth)

    Defined at line 333 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp

  • bool isSupportedGuardInstruction (const Instruction * Insn)

    Defined at line 333 of file llvm/lib/Transforms/Scalar/GuardWidening.cpp

  • bool CC_X86_64_Pointer (unsigned int & ValNo, MVT & ValVT, MVT & LocVT, CCValAssign::LocInfo & LocInfo, ISD::ArgFlagsTy & ArgFlags, CCState & State)

    Defined at line 333 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • template <class ELFT>
    Expected<ELFObjectFile<ELFT>> toBinary (SmallVectorImpl<char> & Storage, StringRef Yaml)

    Defined at line 333 of file llvm/unittests/Object/ELFTest.cpp

  • unsigned int numRetVals (const Function * F)

    Convenience function that returns the number of return values. It returns 0

    for void functions and 1 for functions not returning a struct. It returns

    the number of struct elements for functions returning a struct.

    Defined at line 333 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp

  • void initializeMachineLICMPassOnce (PassRegistry & Registry)

    Defined at line 334 of file llvm/lib/CodeGen/MachineLICM.cpp

  • unsigned int getRetOpcode (const X86Subtarget & Subtarget)

    Defined at line 335 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • void error (error_code EC, const Twine & Prefix)

    Defined at line 335 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • bool basicBlockCanReturn (const BasicBlock & BB)

    A basic block can only return if it terminates with a ReturnInst and does not

    contain calls to noreturn functions.

    Defined at line 335 of file llvm/lib/Analysis/CFG.cpp

  • bool allPhiOperandsUndefined (const MachineInstr & MPhi, const MachineRegisterInfo & MRI)

    Return true if all sources of the phi node are implicit_def's, or undef's.

    Defined at line 335 of file llvm/lib/CodeGen/PHIElimination.cpp

  • SourcePred validShuffleVectorIndex ()

    Defined at line 335 of file llvm/lib/FuzzMutate/Operations.cpp

  • void symbolizeInput (const opt::InputArgList & Args, object::BuildIDRef IncomingBuildID, uint64_t AdjustVMA, bool IsAddr2Line, OutputStyle Style, StringRef InputString, LLVMSymbolizer & Symbolizer, DIPrinter & Printer)

    Defined at line 335 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • template <class T>
    size_t arrayDataSize (ArrayRef<T> A)

    Defined at line 336 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • void streamMapping (yaml::IO & IO, ModuleListStream & Stream)

    Defined at line 336 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • void LLVMEnablePrettyStackTrace ()

    Enable LLVM's built-in stack trace code. This intercepts the OS's crash

    signals and prints which component of LLVM you were in at the time if the

    crash.

    Defined at line 336 of file llvm/lib/Support/PrettyStackTrace.cpp

  • const char * ldissect (struct lmat * , const char * , const char * , sopno , sopno )

    - dissect - figure out what matched what, no back references

    Defined at line 335 of file llvm/lib/Support/regengine.inc

  • const char * sdissect (struct smat * , const char * , const char * , sopno , sopno )

    - dissect - figure out what matched what, no back references

    Defined at line 335 of file llvm/lib/Support/regengine.inc

  • int putCacheKey (ObjectStore & CAS, ActionCache & AC, ArrayRef<std::string> Objects)

    Defined at line 334 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • bool blockPrologueInterferes (const MachineBasicBlock * BB, int End, const MachineInstr & MI, const TargetRegisterInfo * TRI, const TargetInstrInfo * TII, const MachineRegisterInfo * MRI)

    Return true if a target defined block prologue instruction interferes

    with a sink candidate.

    Defined at line 336 of file llvm/lib/CodeGen/MachineSink.cpp

  • SDValue getCopyFromPartsVector (SelectionDAG & DAG, const SDLoc & DL, const SDValue * Parts, unsigned int NumParts, MVT PartVT, EVT ValueVT, const Value * V, SDValue InChain, std::optional<CallingConv::ID> CC)

    getCopyFromPartsVector - Create a value that contains the specified legal

    parts combined into the value they represent. If the parts combine to a

    type larger than ValueVT then AssertOp can be used to specify whether the

    extra bits are known to be zero (ISD::AssertZext) or sign extended from

    ValueVT (ISD::AssertSext).

    Defined at line 338 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • LLVMSymbolIteratorRef LLVMGetRelocationSymbol (LLVMRelocationIteratorRef RI)

    Defined at line 335 of file llvm/lib/Object/Object.cpp

  • bool hasInefficientLEABaseReg (const MachineOperand & Base, const MachineOperand & Index)

    Returns true if this LEA uses base and index registers, and the base

    register is known to be inefficient for the subtarget.

    TODO: use a variant scheduling class to model the latency profile

    of LEA instructions, and implement this logic as a scheduling predicate.

    Defined at line 336 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • basic_string getMask (uint32_t prot)

    Defined at line 336 of file llvm/tools/llvm-readobj/MachODumper.cpp

  • optional encodePacked (const TypeSigTy & TypeSig)

    Pack the type signature into 32-bit fixed encoding word.

    Defined at line 336 of file llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp

  • Error load (MachOObjectFile * Obj, RecordsSlice & Slice, const ParseOption & Opt, Architecture Arch)

    Defined at line 336 of file llvm/lib/TextAPI/BinaryReader/DylibReader.cpp

  • void TestInlineInfoEncodeDecode (endianness ByteOrder, const InlineInfo & Inline)

    Defined at line 336 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • unique_ptr ParseExpression ()

    expression

    ::= primary binoprhs

    Defined at line 337 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void lto_module_set_target_triple (lto_module_t mod, const char * triple)

    Sets triple string with which the object will be codegened.

    Defined at line 332 of file llvm/tools/lto/lto.cpp

  • unsigned int lto_module_get_num_symbols (lto_module_t mod)

    Returns the number of symbols in the object module.

    Defined at line 336 of file llvm/tools/lto/lto.cpp

  • void SkipIgnoredIntegerSuffix (const char *& CurPtr)

    Defined at line 337 of file llvm/lib/MC/MCParser/AsmLexer.cpp

  • int skipBackwardPastNonInstructions (int I, MachineBasicBlock * MBB)

    Iterate backwards from the given iterator

    towards the beginning of the

    block. If a MI satisfying 'countsAsInstruction' is found, return an iterator

    pointing to that MI. If no such MI is found, return the end iterator.

    Defined at line 337 of file llvm/lib/CodeGen/BranchFolding.cpp

  • bool doDefKillClear (MachineBasicBlock * MBB)

    Defined at line 337 of file llvm/lib/CodeGen/MIRCanonicalizerPass.cpp

  • Error parseAlignment (StringRef Str, Align & Alignment, StringRef Name, bool AllowZero)

    Attempts to parse an alignment component of a specification.

    On success, returns the value converted to byte amount in

    If the value is zero and

    is true,

    is set to one.

    Return an error in a number of cases:

    -

    is empty or contains characters other than decimal digits;

    - the value is zero and

    is false;

    - the value is too large;

    - the value is not a multiple of the byte width;

    - the value converted to byte amount is not not a power of two.

    Defined at line 337 of file llvm/lib/IR/DataLayout.cpp

  • SmallVector<MachineInstr *, 2> findPotentialBlockers (MachineInstr * LoadInst)

    Collect potentially blocking stores.

    Limit the number of instructions backwards we want to inspect

    since the effect of store block won't be visible if the store

    and load instructions have enough instructions in between to

    keep the core busy.

    Defined at line 337 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • Register scavengeVReg (MachineRegisterInfo & MRI, RegScavenger & RS, Register VReg, bool ReserveAfter)

    Allocate a register for the virtual register

    The last use of

    is around the current position of the register scavenger

    controls whether the scavenged register needs to be reserved

    after the current instruction, otherwise it will only be reserved before the

    current instruction.

    Defined at line 337 of file llvm/lib/CodeGen/RegisterScavenging.cpp

  • template <typename T>
    uint32_t initializeOptionalHeader (COFFParser & CP, uint16_t Magic, T Header)

    Defined at line 337 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • void buildPartialInvariantUnswitchConditionalBranch (BasicBlock & BB, ArrayRef ToDuplicate, bool Direction, BasicBlock & UnswitchedSucc, BasicBlock & NormalSucc, Loop & L, MemorySSAUpdater * MSSAU, const BranchInst & OriginalBranch)

    Copy a set of loop invariant values, and conditionally branch on them.

    Defined at line 337 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void emitDXILOpClasses (const RecordKeeper & Records, raw_ostream & OS)

    Emit a list of DXIL op classes

    Defined at line 338 of file llvm/utils/TableGen/DXILEmitter.cpp

  • optional isLexicographicallyPositive (ArrayRef DV, unsigned int Begin, unsigned int End)

    Check if a direction vector is lexicographically positive. Return true if it

    is positive, nullopt if it is "zero", otherwise false.

    [Theorem] A permutation of the loops in a perfect nest is legal if and only

    if the direction matrix, after the same permutation is applied to its

    columns, has no ">" direction as the leftmost non-"=" direction in any row.

    Defined at line 338 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • bool printMarkupStackTrace (StringRef Argv0, void ** StackTrace, int Depth, raw_ostream & OS)

    Defined at line 338 of file llvm/lib/Support/Signals.cpp

  • Expected<TargetInfo> getOutputTargetInfoByTargetName (StringRef TargetName)

    Defined at line 338 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • bool isIntOrIntVectorValue (const std::pair<const Value *, unsigned int> & V)

    Defined at line 339 of file llvm/lib/Bitcode/Writer/ValueEnumerator.cpp

  • basic_string getArchName (const object::MachOObjectFile & Obj)

    Defined at line 339 of file llvm/tools/dsymutil/MachODebugMapParser.cpp

  • const Module * getModuleFromDPI (const DbgMarker * Marker)

    Defined at line 339 of file llvm/lib/IR/AsmWriter.cpp

  • GenericValue lle_X_abort (FunctionType * FT, ArrayRef Args)

    void abort(void)

    Defined at line 339 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • const SCEVAddRecExpr * findAddRecForLoop (const SCEV * S, const Loop * L)

    Defined at line 339 of file llvm/lib/Analysis/IVUsers.cpp

  • bool containsUndefinedElement (const Constant * C, function_ref HasFn)

    Defined at line 339 of file llvm/lib/IR/Constants.cpp

  • void emitDesc (raw_ostream & OS, StringRef EnumName, ArrayRef<SDNodeInfo> Nodes, unsigned int NameOffset, unsigned int ConstraintsOffset, unsigned int ConstraintCount)

    Defined at line 339 of file llvm/utils/TableGen/SDNodeInfoEmitter.cpp

  • uint64_t LLVMGetRelocationType (LLVMRelocationIteratorRef RI)

    Defined at line 340 of file llvm/lib/Object/Object.cpp

  • template <class T>
    void writeArrayData (raw_ostream & OS, ArrayRef<T> A)

    Defined at line 340 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • template <typename T>
    void copyBytesForDefRange (SmallString<20> & BytePrefix, SymbolKind SymKind, const T & DefRangeHeader)

    Only call this on endian-specific types like ulittle16_t and little32_t, or

    structs composed of them.

    Defined at line 340 of file llvm/lib/MC/MCStreamer.cpp

  • bool processCmp (CmpInst * Cmp, LazyValueInfo * LVI)

    Defined at line 340 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • LLVMBool LLVMTargetMachineEmitToMemoryBuffer (LLVMTargetMachineRef T, LLVMModuleRef M,  codegen, char ** ErrorMessage, LLVMMemoryBufferRef * OutMemBuf)

    Compile the LLVM IR stored in

    and store the result in

    Defined at line 340 of file llvm/lib/Target/TargetMachineC.cpp

  • void streamMapping (yaml::IO & IO, SystemInfoStream & Stream)

    Defined at line 340 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • template <typename T>
    void error (const ErrorOr<T> & V, const Twine & Prefix)

    Defined at line 341 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • basic_string formatRegisterId (uint16_t Reg16, CPUType Cpu)

    Defined at line 341 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • const Value * getMinimalBaseOfPointer (Attributor & A, const AbstractAttribute & QueryingAA, const Value * Ptr, int64_t & BytesOffset, const DataLayout & DL, bool AllowNonInbounds)

    Defined at line 341 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • double getLineWidth (const GraphDiffRenderer::GraphT::EdgeValueType & E, StatType EL)

    Defined at line 341 of file llvm/tools/llvm-xray/xray-graph-diff.cpp

  • void initializeCallGraphViewerPassOnce (PassRegistry & Registry)

    Defined at line 342 of file llvm/lib/Analysis/CallPrinter.cpp

  • bool hasLEAOffset (const MachineOperand & Offset)

    Defined at line 342 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • void initializeSelectOptimizePassOnce (PassRegistry & Registry)

    Defined at line 342 of file llvm/lib/CodeGen/SelectOptimize.cpp

  • uint64_t getSymbolValue (const MCSymbolCOFF & Symbol, const MCAssembler & Asm)

    Defined at line 342 of file llvm/lib/MC/WinCOFFObjectWriter.cpp

  • MemberData computeStringTable (StringRef Names)

    Defined at line 342 of file llvm/lib/Object/ArchiveWriter.cpp

  • std::optional<BCECmpBlock> visitCmpBlock (Value *const Val, BasicBlock *const Block, const BasicBlock *const PhiBlock, BaseIdentifier & BaseId)

    Visit the given comparison block. If this is a comparison between two valid

    BCE atoms, returns the comparison.

    Defined at line 342 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • SmallVector makeTagVector (const list<std::string> & TagStrings)

    @

    }

    ===----------------------------------------------------------------------===//

    Defined at line 343 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void initializeEarlyMachineLICMPassOnce (PassRegistry & Registry)

    Defined at line 343 of file llvm/lib/CodeGen/MachineLICM.cpp

  • uint64_t sectionPhysicalAddr (const SectionBase * Sec)

    Defined at line 343 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • Error resolveSectionAndAddress (const COFFObjectFile * Obj, const SymbolRef & Sym, const coff_section *& ResolvedSection, uint64_t & ResolvedAddr)

    Given a symbol sym this functions returns the address and section of it.

    Defined at line 343 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • ModFlagBehavior map_to_llvmModFlagBehavior ( Behavior)

    Defined at line 343 of file llvm/lib/IR/Core.cpp

  • void lexCommand (const char * Argv0, std::string & Message, const std::string & CommandLine, std::string & CmdPath, std::vector<std::string> & Args)

    Tokenize the CommandLine to the command and the args to allow

    defining a full command line as the command instead of just the

    executed program. We cannot just pass the whole string after the command

    as a single argument because then the program sees only a single

    command line argument (with spaces in it: "foo bar" instead

    of "foo" and "bar").

    Spaces are used as a delimiter; however repeated, leading, and trailing

    whitespace are ignored. Simple escaping is allowed via the '

    \

    '

    character, as seen below:

    Two consecutive '

    \

    ' evaluate to a single '

    \

    '.

    A space after a '

    \

    ' evaluates to a space that is not interpreted as a

    delimiter.

    Any other instances of the '

    \

    ' character are removed.

    Example:

    '

    \

    ' -> '

    \

    '

    '

    \

    ' -> ' '

    'exa

    ' -> 'example'

    Defined at line 343 of file llvm/tools/bugpoint/ToolRunner.cpp

  • void migrateDebugInfo (AllocaInst * OldAlloca, bool IsSplit, uint64_t OldAllocaOffsetInBits, uint64_t SliceSizeInBits, Instruction * OldInst, Instruction * Inst, Value * Dest, Value * Value, const DataLayout & DL)

    Find linked dbg.assign and generate a new one with the correct

    FragmentInfo. Link Inst to the new dbg.assign. If Value is nullptr the

    value component is copied from the old dbg.assign to the new.

    Parameters

    OldAlloca Alloca for the variable before splitting.
    IsSplit True if the store (not necessarily alloca) is being split.
    OldAllocaOffsetInBits Offset of the slice taken from OldAlloca.
    SliceSizeInBits New number of bits being written to.
    OldInst Instruction that is being split.
    Inst New instruction performing this part of the split store.
    Dest Store destination.
    Value Stored value.
    DL Datalayout.

    Defined at line 343 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • template <class T>
    void zero (T & Obj)

    Defined at line 344 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • bool canSkipClobberingStore (const StoreInst * SI, const MemoryLocation & MemLoc, Align MemLocAlign, BatchAAResults & BatchAA, unsigned int ScanLimit)

    Check if SI that may alias with MemLoc can be safely skipped. This is

    possible in case if SI can only must alias or no alias with MemLoc (no

    partial overlapping possible) and it writes the same value that MemLoc

    contains now (it was loaded before this store and was not modified in

    between).

    Defined at line 344 of file llvm/lib/Analysis/MemoryDependenceAnalysis.cpp

  • void convertMFI (ModuleSlotTracker & MST, yaml::MachineFrameInfo & YamlMFI, const MachineFrameInfo & MFI, const TargetRegisterInfo * TRI)

    Defined at line 344 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • bool canMoveAboveCall (Instruction * I, CallInst * CI, AliasAnalysis * AA)

    Return true if it is safe to move the specified

    instruction from after the call to before the call, assuming that all

    instructions between the call and this instruction are movable.

    Defined at line 344 of file llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp

  • const Module * getModuleFromDPI (const DbgRecord * DR)

    Defined at line 345 of file llvm/lib/IR/AsmWriter.cpp

  • basic_string formatRegisterId (ulittle16_t & Reg16, CPUType Cpu)

    Defined at line 345 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • void maybeVerifyModule (const Module & Mod)

    Defined at line 345 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • const char * LLVMGetRelocationTypeName (LLVMRelocationIteratorRef RI)

    NOTE: Caller takes ownership of returned string of the two

    following functions.

    Defined at line 345 of file llvm/lib/Object/Object.cpp

  • bool dumpFileEntry (DataExtractor & Data, uint64_t & Offset, DWARFYAML::File & File)

    Defined at line 345 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • void linkComponents ()

    Defined at line 345 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • void initializeCallGraphDOTPrinterPassOnce (PassRegistry & Registry)

    Defined at line 346 of file llvm/lib/Analysis/CallPrinter.cpp

  • Cursor maybeLexIndex (Cursor C, MIToken & Token, StringRef Rule, TokenKind Kind)

    Defined at line 346 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void computeDiff (const StringMap<InstCountAndStackSize> & FuncNameToSizeInfoA, const StringMap<InstCountAndStackSize> & FuncNameToSizeInfoB, DiffsCategorizedByFilesPresent & DiffsByFilesPresent)

    Populates

    with the difference between

    and

    Parameters

    FuncNameToSizeInfoA [in] - Size info collected from the first remarks file.
    FuncNameToSizeInfoB [in] - Size info collected from the second remarks file.
    DiffsByFilesPresent [out] - Filled with the diff between and

    Defined at line 346 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • bool terminalHasColors ()

    Defined at line 346 of file llvm/lib/Support/Unix/Process.inc

  • bool CC_X86_64_I128 (unsigned int & ValNo, MVT & ValVT, MVT & LocVT, CCValAssign::LocInfo & LocInfo, ISD::ArgFlagsTy & ArgFlags, CCState & State)

    Special handling for i128: Either allocate the value to two consecutive

    i64 registers, or to the stack. Do not partially allocate in registers,

    and do not reserve any registers when allocating to the stack.

    Defined at line 346 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • basic_string GetCheckTypeAbbreviation (FileCheckType Ty)

    Get an abbreviation for the check type.

    Defined at line 346 of file llvm/utils/FileCheck/FileCheck.cpp

  • GlobalVariable * getOrCreateRefVariable (Function & F, SmallDenseMap<GlobalVariable *, GlobalVariable *> & RefMapping, GlobalVariable * GV)

    Get or create a new global variable that points to the old one and whose

    name begins with `__ref_`.

    In hot-patched images, the __ref_* variables point to global variables in

    the original (unpatched) image. Hot-patched functions in the hot-patch

    image use these __ref_* variables to access global variables. This ensures

    that all code (both unpatched and patched) is using the same instances of

    global variables.

    The Windows hot-patch infrastructure handles modifying these __ref_*

    variables. By default, they are initialized with pointers to the equivalent

    global variables, so when a hot-patch module is loaded *as* a base image

    (such as after a system reboot), hot-patch functions will access the

    instances of global variables that are compiled into the hot-patch image.

    This is the desired outcome, since in this situation (normal boot) the

    hot-patch image *is* the base image.

    When we create the GlobalVariable for the __ref_* variable, we must create

    it as a *non-constant* global variable. The __ref_* pointers will not change

    during the runtime of the program, so it is tempting to think that they

    should be constant. However, they still need to be updateable by the

    hot-patching infrastructure. Also, if the GlobalVariable is created as a

    constant, then the LLVM optimizer will assume that it can dereference the

    definition of the __ref_* variable at compile time, which defeats the

    purpose of the indirection (pointer).

    The RefMapping table spans the entire module, not just a single function.

    Defined at line 346 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp

  • Error handleObjectFile (ObjectFile & Obj, const std::string & OutFile, OutputAggregator & Out)

    Defined at line 346 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • void FactorScope (int & MatcherPtr)

    Turn matches like this:

    Scope

    OPC_CheckType i32

    ABC

    OPC_CheckType i32

    XYZ

    into:

    OPC_CheckType i32

    Scope

    ABC

    XYZ

    Defined at line 346 of file llvm/utils/TableGen/DAGISelMatcherOpt.cpp

  • void emitDXILOpParamTypes (const RecordKeeper & Records, raw_ostream & OS)

    Emit a list of DXIL op parameter types

    Defined at line 347 of file llvm/utils/TableGen/DXILEmitter.cpp

  • Type * getRetComponentType (const Function * F, unsigned int Idx)

    Returns the sub-type a function will return at a given Idx. Should

    correspond to the result type of an ExtractValue instruction executed with

    just that one Idx (i.e. only top-level structure is considered).

    Defined at line 347 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp

  • unsigned int getADDrrFromLEA (unsigned int LEAOpcode)

    Defined at line 347 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • unique_ptr ParsePrototype ()

    prototype

    ::= id '(' id* ')'

    Defined at line 347 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • SmallVector getPointerOperands (const Value & V, const DataLayout & DL, const TargetTransformInfo * TTI)

    Returns the pointer operands of V.

    Precondition: V is an address expression.

    Defined at line 347 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • void replaceUnwindCoroEnd (AnyCoroEndInst * End, const coro::Shape & Shape, Value * FramePtr, bool InRamp, CallGraph * CG)

    Replace an unwind call to llvm.coro.end.

    Defined at line 347 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • basic_string computeSystemZDataLayout (const Triple & TT)

    Defined at line 347 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • void printRelocationTargetName (const MachOObjectFile * O, const MachO::any_relocation_info & RE, raw_string_ostream & Fmt)

    Defined at line 347 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Value * copyFlags (const CallInst & Old, Value * New)

    Copy CallInst "flags" like musttail, notail, and tail. Return New param for

    easier chaining. Calls to emit* and B.createCall should probably be wrapped

    in this function when New is created to replace Old. Callers should take

    care to check Old.isMustTailCall() if they aren't replacing Old directly

    with New.

    Defined at line 348 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • template <unsigned N>
    void removeUnreachableFunctions (const SmallPtrSet<const Function *, N> & Reachable, Module & M)

    Defined at line 348 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • int createDumper (const ObjectFile & Obj, ScopedPrinter & Writer)

    Creates an format-specific object file dumper.

    Defined at line 348 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • void getSection (const MachOObjectFile * Obj, DataRefImpl Sec, MachOSection & Section)

    Defined at line 348 of file llvm/tools/llvm-readobj/MachODumper.cpp

  • Expected readModuleTriple (BitstreamCursor & Stream)

    Defined at line 348 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • basic_string formatRange (LocalVariableAddrRange Range)

    Defined at line 349 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • void replaceRegUsesAfterLoop (Register FromReg, Register ToReg, MachineBasicBlock * MBB, MachineRegisterInfo & MRI)

    Replace all uses of FromReg that appear outside the specified

    basic block with ToReg.

    Defined at line 349 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • int getCacheResult (ObjectStore & CAS, ActionCache & AC, const CASID & ID)

    Defined at line 349 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • unsigned int doHexLookAhead (const char *& CurPtr, unsigned int DefaultRadix, bool LexHex)

    Look ahead to search for first non-hex digit, if it's [hH], then we treat the

    integer as a hexadecimal, possibly with leading zeroes.

    Defined at line 349 of file llvm/lib/MC/MCParser/AsmLexer.cpp

  • Instruction * foldShiftOfShiftedBinOp (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    If we have a shift-by-constant of a bin op (bitwise logic op or add/sub w/

    shl) that itself has a shift-by-constant operand with identical opcode, we

    may be able to convert that into 2 independent shifts followed by the logic

    op. This eliminates a use of an intermediate value (reduces dependency

    chain).

    Defined at line 349 of file llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  • void printCallingConv (unsigned int cc, raw_ostream & Out)

    Defined at line 349 of file llvm/lib/IR/AsmWriter.cpp

  • void error (Error Err)

    Defined at line 350 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • int getLocalLTOModule (StringRef Path, int & Buffer, const TargetOptions & Options)

    Defined at line 350 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • bool isLegalToInterChangeLoops (CharMatrix & DepMatrix, unsigned int InnerLoopId, unsigned int OuterLoopId)

    Checks if it is legal to interchange 2 loops.

    Defined at line 350 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • Error loadYAMLLog (StringRef Data, XRayFileHeader & FileHeader, std::vector<XRayRecord> & Records)

    Defined at line 350 of file llvm/lib/XRay/Trace.cpp

  • bool isEqualImpl (SimpleValue LHS, SimpleValue RHS)

    Defined at line 350 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • bool isVtableAccess (Instruction * I)

    Defined at line 351 of file llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp

  • void mapValueToSlot (const Value * V, ModuleSlotTracker & MST, int & Slots2Values)

    Defined at line 351 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • int AssembleInput (const char * ProgName, const Target * TheTarget, SourceMgr & SrcMgr, MCContext & Ctx, MCStreamer & Str, MCAsmInfo & MAI, MCSubtargetInfo & STI, MCInstrInfo & MCII, const MCTargetOptions & MCOptions)

    Defined at line 351 of file llvm/tools/llvm-mc/llvm-mc.cpp

  • Value * findBaseDefiningValueOfVector (Value * I, int & Cache, int & KnownBases)

    Return a base defining value for the 'Index' element of the given vector

    instruction 'I'. If Index is null, returns a BDV for the entire vector

    'I'. As an optimization, this method will try to determine when the

    element is known to already be a base pointer. If this can be established,

    the second value in the returned pair will be true. Note that either a

    vector or a pointer typed value can be returned. For the former, the

    vector returned is a BDV (and possibly a base) of the entire vector 'I'.

    If the later, the return pointer is a BDV (or possibly a base) for the

    particular element in 'I'.

    Defined at line 351 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void emitInstBits (raw_ostream & OS, const APInt & Bits)

    Defined at line 352 of file llvm/utils/TableGen/CodeEmitterGen.cpp

  • bool runPipeline (mca::Pipeline & P)

    Returns true on success.

    Defined at line 352 of file llvm/tools/llvm-mca/llvm-mca.cpp

  • void verifyArch (ArrayRef<OwningBinary<Binary>> InputBinaries, ArrayRef<std::string> VerifyArchList)

    Defined at line 352 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • void CrashRecoverySignalHandler (int Signal)

    Defined at line 352 of file llvm/lib/Support/CrashRecoveryContext.cpp

  • int computeHostNumPhysicalCores ()

    On Linux, the number of physical cores can be computed from /proc/cpuinfo,

    using the number of unique physical/core id pairs. The following

    implementation reads the /proc/cpuinfo format on an x86_64 system.

    Defined at line 352 of file llvm/lib/Support/Unix/Threading.inc

  • char * LLVMGetDefaultTargetTriple ()

    ===-- Triple ------------------------------------------------------------===

    Get a triple for the host machine as a string. The result needs to be

    disposed with LLVMDisposeMessage.

    Defined at line 353 of file llvm/lib/Target/TargetMachineC.cpp

  • bool isBitAligned (Align Alignment, uint64_t SizeInBits)

    Defined at line 353 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • Value * processNonStringArg (Value * Arg, IRBuilder<> & Builder)

    Defined at line 353 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • SmallVector computeParamInfo (const StableFunctionMap::StableFunctionEntries & SFS)

    Defined at line 353 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • Value * foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed (Value * LHS, Value * RHS, bool IsAnd, Value * A, Value * B, Value * D, Value * E, Predicate PredL, Predicate PredR, InstCombiner::BuilderTy & Builder)

    Try to fold (icmp(A

    &

    B) ==/!= C)

    &

    /| (icmp(A

    &

    D) ==/!= E) into a single

    (icmp(A

    &

    X) ==/!= Y), where the left-hand side is of type Mask_NotAllZeros

    and the right hand side is of type BMask_Mixed. For example,

    (icmp (A

    &

    12) != 0)

    &

    (icmp (A

    &

    15) == 8) -> (icmp (A

    &

    15) == 8).

    Also used for logical and/or, must be poison safe.

    Defined at line 353 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • const char * LLVMGetRelocationValueString (LLVMRelocationIteratorRef RI)

    NOTE: Caller takes ownership of returned string.

    Defined at line 354 of file llvm/lib/Object/Object.cpp

  • time_point now (bool Deterministic)

    Defined at line 354 of file llvm/lib/Object/ArchiveWriter.cpp

  • template <typename CallbackT>
    void iterateModules (PDBFile & File, LinePrinter & P, uint32_t IndentLevel, CallbackT Callback)

    Defined at line 354 of file llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp

  • unsigned int ComputeCommonTailLength (MachineBasicBlock * MBB1, MachineBasicBlock * MBB2, int & I1, int & I2)

    Given two machine basic blocks, return the number of instructions they

    actually have in common together at their end. If a common tail is found (at

    least by one instruction), then iterators for the first shared instruction

    in each block are returned as well.

    Non-instructions according to countsAsInstruction are ignored.

    Defined at line 354 of file llvm/lib/CodeGen/BranchFolding.cpp

  • Value * threadBinOpOverSelect (BinaryOps Opcode, Value * LHS, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    In the case of a binary operation with a select instruction as an operand,

    try to simplify the binop by seeing whether evaluating it on both branches

    of the select results in the same value. Returns the common value if so,

    otherwise returns null.

    Defined at line 354 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • GenericValue lle_X_sprintf (FunctionType * FT, ArrayRef Args)

    int sprintf(char *, const char *, ...) - a very rough implementation to make

    output useful.

    Defined at line 354 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • bool doSimplify_v1 (Function & F)

    Defined at line 355 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • bool CheckedZextOrTrunc (APInt & I, unsigned int IntTyBits)

    When we're compiling N-bit code, and the user uses parameters that are

    greater than N bits (e.g. uint64_t on a 32-bit build), we can run into

    trouble with APInt size issues. This function handles resizing + overflow

    checks for us. Check and zext or trunc

    depending on IntTyBits and

    I's value.

    Defined at line 355 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void TestInlineInfoDecodeError (endianness ByteOrder, StringRef Bytes, const uint64_t BaseAddr, basic_string ExpectedErrorMsg)

    Defined at line 355 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • uint32_t getNumberOfRelocations (const coff_section * Sec, MemoryBufferRef M, const uint8_t * base)

    Defined at line 355 of file llvm/lib/Object/COFFObjectFile.cpp

  • void compress_subtree_to_parent_node (const uint8_t * input, size_t input_len, const uint32_t[8] key, uint64_t chunk_counter, uint8_t flags, uint8_t[64] out, _Bool use_tbb)

    Hash a subtree with compress_subtree_wide(), and then condense the resulting

    list of chaining values down to a single parent node. Don't compress that

    last parent node, however. Instead, return its message bytes (the

    concatenated chaining values of its children). This is necessary when the

    first call to update() supplies a complete subtree, because the topmost

    parent node of that subtree could end up being the root. It's also necessary

    for extended output in the general case.

    As with compress_subtree_wide(), this function is not used on inputs of 1

    chunk or less. That's a different codepath.

    Defined at line 355 of file llvm/lib/Support/BLAKE3/blake3.c

  • BasicBlock * insertUniqueBackedgeBlock (Loop * L, BasicBlock * Preheader, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU)

    This method is called when the specified loop has more than one

    backedge in it.

    If this occurs, revector all of these backedges to target a new basic block

    and have that block branch to the loop header. This ensures that loops

    have exactly one backedge.

    Defined at line 355 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • void RemoveFilesToRemove ()

    Process the FilesToRemove list.

    Defined at line 356 of file llvm/lib/Support/Unix/Signals.inc

  • bool stripNegationPrefix (StringRef & Name)

    Defined at line 356 of file llvm/lib/TargetParser/ARMTargetParser.cpp

  • basic_string formatGaps (uint32_t IndentLevel, ArrayRef Gaps)

    Defined at line 356 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • bool hasLoc (const Instruction & I)

    Defined at line 356 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • Value * mergeAttributesAndFlags (CallInst * NewCI, const CallInst & Old)

    Defined at line 356 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void dumpDebugLines (llvm::DWARFContext & DCtx, llvm::DWARFYAML::Data & Y)

    Defined at line 356 of file llvm/tools/obj2yaml/dwarf2yaml.cpp

  • char * LLVMNormalizeTargetTriple (const char * triple)

    Normalize a target triple. The result needs to be disposed with

    LLVMDisposeMessage.

    Defined at line 357 of file llvm/lib/Target/TargetMachineC.cpp

  • bool handleBranchExpect (BranchInst & BI)

    Defined at line 357 of file llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp

  • void error (StringRef Prefix, Error Err)

    Defined at line 357 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • bool isEmptyModule (const Module & Mod)

    Defined at line 357 of file llvm/lib/LTO/LTOBackend.cpp

  • void emitDXILAttributes (const RecordKeeper & Records, raw_ostream & OS)

    Emit a list of DXIL op function attributes

    Defined at line 357 of file llvm/utils/TableGen/DXILEmitter.cpp

  • bool hasVariantSymbol (const MCInst & MI)

    Check if the instruction has a variant symbol operand.

    Defined at line 357 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • bool maintainNoSignedWrap (BinaryOperator & I, Value * B, Value * C)

    Return true, if No Signed Wrap should be maintained for I.

    The No Signed Wrap flag can be kept if the operation "B (I.getOpcode) C",

    where both B and C should be ConstantInts, results in a constant that does

    not overflow. This function only handles the Add/Sub/Mul opcodes. For

    all other opcodes, the function conservatively returns false.

    Defined at line 357 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • optional analyzeLoopUnrollCost (const Loop * L, unsigned int TripCount, DominatorTree & DT, ScalarEvolution & SE, const SmallPtrSetImpl<const Value *> & EphValues, const TargetTransformInfo & TTI, unsigned int MaxUnrolledLoopSize, unsigned int MaxIterationsCountToAnalyze)

    Figure out if the loop is worth full unrolling.

    Complete loop unrolling can make some loads constant, and we need to know

    if that would expose any further optimization opportunities. This routine

    estimates this optimization. It computes cost of unrolled loop

    (UnrolledCost) and dynamic cost of the original loop (RolledDynamicCost). By

    dynamic cost we mean that we won't count costs of blocks that are known not

    to be executed (i.e. if we have a branch in the loop and we know that at the

    given iteration its condition would be resolved to true, we won't add up the

    cost of the 'false'-block).

    Defined at line 357 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • void initializeCompressEVEXPassPassOnce (PassRegistry & Registry)

    Defined at line 358 of file llvm/lib/Target/X86/X86CompressEVEX.cpp

  • Type * getReducedType (Value * V, Type * Ty)

    Given a reduced scalar type

    and a

    value, return a reduced type

    for

    according to its type, if it vector type, return the vector

    version of

    otherwise return

    Defined at line 358 of file llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp

  • void verifyAfterRoundTrip (const Module & M, unique_ptr OtherM)

    Defined at line 358 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • MachineMemOperand * getMachineMemOperand (MachineFunction & MF, FrameIndexSDNode & FI)

    Defined at line 358 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • const BasicBlock * getEHPadFromPredecessor (const BasicBlock * BB, Value * ParentPad)

    Given BB which ends in an unwind edge, return the EHPad that this BB belongs

    to. If the unwind edge came from an invoke, return null.

    Defined at line 358 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • Value * matchAddReduction (const ExtractElementInst & EE, bool & ReduceInOneBB)

    Walk backwards from the ExtractElementInst and determine if it is the end of

    a horizontal reduction. Return the input to the reduction if we find one.

    Defined at line 358 of file llvm/lib/Target/X86/X86PartialReduction.cpp

  • bool processSwitch (SwitchInst * I, LazyValueInfo * LVI, DominatorTree * DT)

    Simplify a switch instruction by removing cases which can never fire. If the

    uselessness of a case could be determined locally then constant propagation

    would already have figured it out. Instead, walk the predecessors and

    statically evaluate cases based on information available on that edge. Cases

    that cannot fire no matter what the incoming edge can safely be removed. If

    a case fires on every incoming edge then the entire switch can be removed

    and replaced with a branch to the case destination.

    Defined at line 358 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • error_code coff2yaml (llvm::raw_ostream & Out, const llvm::object::COFFObjectFile & Obj)

    Defined at line 359 of file llvm/tools/obj2yaml/coff2yaml.cpp

  • unsigned int getSUBrrFromLEA (unsigned int LEAOpcode)

    Defined at line 359 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • Cursor maybeLexIndexAndName (Cursor C, MIToken & Token, StringRef Rule, TokenKind Kind)

    Defined at line 359 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void explainDbiModiSubstreamOffset (LinePrinter & P, DbiStream & Dbi, uint32_t Offset)

    Defined at line 359 of file llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp

  • bool shouldInstrumentReadWriteFromAddress (const Module * M, Value * Addr)

    Do not instrument known races/"benign races" that come from compiler

    instrumentation. The user has no way of suppressing them.

    Defined at line 359 of file llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp

  • bool runOnBasicBlock (MachineBasicBlock * MBB, unsigned int BasicBlockNum, VRegRenamer & Renamer)

    Defined at line 359 of file llvm/lib/CodeGen/MIRCanonicalizerPass.cpp

  • template <typename AAType, typename StateType = typename AAType::StateType, Attribute::AttrKind IRAttributeKind = AAType::IRAttributeKind, bool RecurseForSelectAndPHI = true>
    void clampReturnedValueStates (Attributor & A, const AAType & QueryingAA, StateType & S, const IRPosition::CallBaseContext * CBContext)

    Clamp the information known for all returned values of a function

    (identified by

    into

    Defined at line 359 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • bool doSimplify_v2 (Function & F, DominatorTree & DT)

    Defined at line 360 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • bool hasUseAfterLoop (Register Reg, MachineBasicBlock * BB, MachineRegisterInfo & MRI)

    Return true if the register has a use that occurs outside the

    specified loop.

    Defined at line 360 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • basic_string getFSProfileFile (const TargetMachine * TM)

    Find the FSProfile file name. The internal option takes the precedence

    before getting from TargetMachine.

    Defined at line 360 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • Error resolveSymbol (const std::vector<RelocationRef> & Rels, uint64_t Offset, SymbolRef & Sym)

    Given a vector of relocations for a section and an offset into this section

    the function returns the symbol used for the relocation at the offset.

    Defined at line 360 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • void initSlots2Values (const Function & F, int & Slots2Values)

    Creates the mapping from slot numbers to function's unnamed IR values.

    Defined at line 360 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • uint8_t mergeTypeForSet (uint8_t origType, uint8_t newType)

    Defined at line 360 of file llvm/lib/MC/ELFObjectWriter.cpp

  • Expected findSection (StringRef SecName, Object & O)

    Defined at line 360 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • bool discoverTypeIndices (ArrayRef Content, SymbolKind Kind, SmallVectorImpl<TiReference> & Refs)

    Defined at line 360 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • int validateObject (ObjectStore & CAS, const CASID & ID)

    Defined at line 361 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • char * LLVMGetHostCPUName ()

    Get the host CPU as a string. The result needs to be disposed with

    LLVMDisposeMessage.

    Defined at line 361 of file llvm/lib/Target/TargetMachineC.cpp

  • void writeCString (StringRef Str, AsmPrinter & Asm)

    Defined at line 361 of file llvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp

  • void llvm_jitlink_setTestResultOverride (int64_t Value)

    Defined at line 361 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • unsigned int getShufflevectorNumGroups (ArrayRef VL)

    Defined at line 361 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool collectSRATypes (int & Parts, GlobalVariable * GV, const DataLayout & DL)

    Look at all uses of the global and determine which (offset, type) pairs it

    can be split into.

    Defined at line 361 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool isArchiveSymbol (const object::BasicSymbolRef & S)

    Defined at line 362 of file llvm/lib/Object/ArchiveWriter.cpp

  • void BeginEmitFunction (raw_ostream & OS, StringRef RetType, StringRef Decl, bool AddOverride)

    Defined at line 362 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  •  map_from_llvmModFlagBehavior (ModFlagBehavior Behavior)

    Defined at line 362 of file llvm/lib/IR/Core.cpp

  • Error addSymbolsFromFile (NameMatcher & Symbols, BumpPtrAllocator & Alloc, StringRef Filename, MatchStyle MS, function_ref<Error (Error)> ErrorCallback)

    Defined at line 362 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • void finalizeDwarfRegNumsKeys (int & DwarfRegNums)

    Defined at line 362 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • bool formLCSSAImpl (Loop & L, const DominatorTree & DT, const LoopInfo * LI, ScalarEvolution * SE, LoopExitBlocksTy & LoopExitBlocks)

    Defined at line 362 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • bool incomingValuesAreCompatible (BasicBlock * BB, ArrayRef IncomingBlocks, SmallPtrSetImpl<Value *> * EquivalenceSet)

    Return true if all the PHI nodes in the basic block

    receive compatible (identical) incoming values when coming from

    all of the predecessor blocks that are specified in

    Note that if the values aren't exactly identical, but

    is provided, and *both* of the values are present in the set,

    then they are considered equal.

    Defined at line 363 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void error (StringRef Prefix, error_code EC)

    Defined at line 364 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void initializeScalarizerLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 364 of file llvm/lib/Transforms/Scalar/Scalarizer.cpp

  • char popFront (StringRef & S)

    Parsing helper function that strips the first character in S and returns it.

    Defined at line 364 of file llvm/lib/FileCheck/FileCheck.cpp

  • ErrorOr getOutputStream ()

    Attempt to get the output stream for writing the diff.

    Defined at line 364 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • bool lowerExpectIntrinsic (Function & F)

    Defined at line 364 of file llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp

  • bool doSimplify_v3 (Function & F, DominatorTree & DT)

    Defined at line 365 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • bool isAcceleratorExecutionRoot (const Function * F)

    Defined at line 365 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • void initializeLoopTermFoldPassOnce (PassRegistry & Registry)

    Defined at line 365 of file llvm/lib/Transforms/Scalar/LoopTermFold.cpp

  • basic_string formatJumpTableEntrySize (JumpTableEntrySize EntrySize)

    Defined at line 365 of file llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp

  • void writeV2IncludeAndFileTable (const DWARFDebugLine::Prologue & Prologue, AsmPrinter & Asm)

    Defined at line 366 of file llvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp

  • bool shouldUseMmap (sys::fs::file_t FD, size_t FileSize, size_t MapSize, off_t Offset, bool RequiresNullTerminator, int PageSize, bool IsVolatile)

    Defined at line 366 of file llvm/lib/Support/MemoryBuffer.cpp

  • basic_string getDescription (const Loop & L)

    Defined at line 367 of file llvm/lib/Analysis/LoopPass.cpp

  • void tcComplement (APInt::WordType * dst, unsigned int parts)

    Complement a bignum in-place.

    Defined at line 367 of file llvm/lib/Support/APInt.cpp

  • bool attrIsDefined (int Attrs, const Record * Attr)

    Helper function to determine if the given Attr is defined in the vector

    Attrs, by comparing the names

    Defined at line 367 of file llvm/utils/TableGen/DXILEmitter.cpp

  • void TestInlineInfoEncodeError (endianness ByteOrder, const InlineInfo & Inline, basic_string ExpectedErrorMsg)

    Defined at line 367 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • int llvm_cgdata_main (int argc, char ** , const llvm::ToolContext & )

    Defined at line 369 of file llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  • int validate (ObjectStore & CAS, ActionCache & AC, bool CheckHash)

    Defined at line 368 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • char * LLVMGetHostCPUFeatures ()

    Get the host CPU's features as a string. The result needs to be disposed

    with LLVMDisposeMessage.

    Defined at line 365 of file llvm/lib/Target/TargetMachineC.cpp

  • vector orderSpellings (ArrayRef Spellings)

    Given a list of spellings (for a given clause/directive), order them

    in a way that allows the use of binary search to locate a spelling

    for a specified version.

    Defined at line 368 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • const MCExpr * forceExpAbs (MCStreamer & OS, const MCExpr * Expr)

    Defined at line 368 of file llvm/lib/MC/MCDwarf.cpp

  • void verifyBitcodeUseListOrder (const Module & M)

    Defined at line 368 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • void undriftMemProfRecord (const int & UndriftMaps, memprof::MemProfRecord & MemProfRec)

    Given a MemProfRecord, undrift all the source locations present in the

    record in place.

    Defined at line 368 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • DIDumpOptions getDumpOpts (DWARFContext & C)

    Defined at line 368 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • VPValue * getPredicatedMask (VPRegionBlock * R)

    If

    is a region with a VPBranchOnMaskRecipe in the entry block, return

    the mask.

    Defined at line 369 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • StringRef removeTemplateArgs (StringRef Name)

    Defined at line 369 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • bool hasVulnerableLoad (MachineFunction & MF)

    Helper to scan a function for loads vulnerable to misspeculation that we

    want to harden.

    We use this to avoid making changes to functions where there is nothing we

    need to do to harden against misspeculation.

    Defined at line 369 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp

  • pair insertWaveSizeFeature (StringRef GPU, const Triple & T, const StringMap<bool> & DefaultFeatures, StringMap<bool> & Features)

    Defined at line 369 of file llvm/lib/TargetParser/TargetParser.cpp

  • void handleNewDebugValue (InlinedEntity Var, const MachineInstr & DV, int & RegVars, int & LiveEntries, DbgValueHistoryMap & HistMap)

    Add a new debug value for

    Closes all overlapping debug values.

    Defined at line 369 of file llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp

  • void thinLTOResolvePrevailingGUID (const Config & C, ValueInfo VI, int & GlobalInvolvedWithAlias, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, function_ref<void (StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage, const int & GUIDPreservedSymbols)

    Defined at line 369 of file llvm/lib/LTO/LTO.cpp

  • template <bool IsLoad, typename Ty>
    bool getPotentialCopiesOfMemoryValue (Attributor & A, Ty & I, SmallSetVector<Value *, 4> & PotentialCopies, SmallSetVector<Instruction *, 4> * PotentialValueOrigins, const AbstractAttribute & QueryingAA, bool & UsedAssumedInformation, bool OnlyExact)

    Defined at line 369 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • void streamMapping (yaml::IO & IO, TextContentStream & Stream)

    Defined at line 370 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • StringRef substr (StringRef Str, uint64_t Len)

    Helper to avoid truncating the length if size_t is 32-bits.

    Defined at line 370 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • bool isStructPathTBAA (const MDNode * MD)

    Check the first operand of the tbaa tag node, if it is a MDNode, we treat

    it as struct-path aware TBAA format, otherwise, we treat it as scalar TBAA

    format.

    Defined at line 370 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

  • LaneBitmask getRegLanes (ArrayRef<VRegMaskOrUnit> RegUnits, VirtRegOrUnit VRegOrUnit)

    Defined at line 370 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • unique_ptr ParseDefinition ()

    definition ::= 'def' prototype expression

    Defined at line 370 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • FPUKind findDoublePrecisionFPU (FPUKind InputFPUKind)

    Defined at line 370 of file llvm/lib/TargetParser/ARMTargetParser.cpp

  • void printIndexStats ()

    Print some statistics on the index for each input files.

    Defined at line 370 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • Expected upgrade (ArrayRef BMs)

    Upgrade a vector of bitcode modules created by an old version of LLVM by

    creating an irsymtab for them in the current format.

    Defined at line 370 of file llvm/lib/Object/IRSymtab.cpp

  • void printObjectSectionSizes (ObjectFile * Obj)

    Print the size of each section in

    The format used is determined by

    and

    Defined at line 370 of file llvm/tools/llvm-size/llvm-size.cpp

  • void dumpObject (ObjectFile & Obj, ScopedPrinter & Writer, const Archive * A)

    Dumps the specified object file.

    Defined at line 370 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • const CallInst * findStackProtectorIntrinsic (Function & F)

    Search for the first call to the llvm.stackprotector intrinsic and return it

    if present.

    Defined at line 371 of file llvm/lib/CodeGen/StackProtector.cpp

  • basic_string getFSRemappingFile (const TargetMachine * TM)

    Find the Profile remapping file name. The internal option takes the

    precedence before getting from TargetMachine.

    Defined at line 371 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • template <typename AliasAnalysisType>
    bool isUseTriviallyOptimizableToLiveOnEntry (AliasAnalysisType & AA, const Instruction * I)

    Defined at line 371 of file llvm/lib/Analysis/MemorySSA.cpp

  • unsigned int getADDriFromLEA (unsigned int LEAOpcode, const MachineOperand & Offset)

    Defined at line 371 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • void convertEntryValueObjects (yaml::MachineFunction & YMF, const MachineFunction & MF, ModuleSlotTracker & MST)

    Defined at line 372 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • bool mayHaveInterruptDelaySlot (unsigned int InstOpcode)

    X86 has certain instructions which enable interrupts exactly one

    instruction *after* the instruction which stores to SS. Return true if the

    given instruction may have such an interrupt delay slot.

    Defined at line 372 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • APInt findDemandedEltsByAllUsers (Value * V)

    Find union of elements of V demanded by all its users.

    If it is known by querying findDemandedEltsBySingleUser that

    no user demands an element of V, then the corresponding bit

    remains unset in the returned value.

    Defined at line 372 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • bool checkIfSupported (const Function * F, const CallBase * CB)

    Defined at line 372 of file llvm/lib/Transforms/HipStdPar/HipStdPar.cpp

  • void addCygMingExtraModule (ExecutionEngine & EE, LLVMContext & Context, const Triple & TargetTriple)

    On Mingw and Cygwin, an external symbol named '__main' is called from the

    generated 'main' function to allow static initialization. To avoid linking

    problems with remote targets (because lli's remote target support does not

    currently handle external linking) we add a secondary module which defines

    an empty '__main' function.

    Defined at line 372 of file llvm/tools/lli/lli.cpp

  • void callBufferedPrintfArgPush (IRBuilder<> & Builder, ArrayRef Args, Value * PtrToStore, SparseBitVector<8> & SpecIsCString, SmallVectorImpl<StringData> & StringContents, bool IsConstFmtStr)

    Defined at line 372 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp

  • void computeKnownBitsFromLerpPattern (const Value * Op0, const Value * Op1, const APInt & DemandedElts, KnownBits & KnownOut, const SimplifyQuery & Q, unsigned int Depth)

    Try to detect the lerp pattern: a * (b - c) + c * d

    where a >= 0, b >= 0, c >= 0, d >= 0, and b >= c.

    In that particular case, we can use the following chain of reasoning:

    a * (b - c) + c * d

    <

    = a' * (b - c) + a' * c = a' * b where a' = max(a, d)

    Since that is true for arbitrary a, b, c and d within our constraints, we

    can conclude that:

    max(a * (b - c) + c * d)

    <

    = max(max(a), max(d)) * max(b) = U

    Considering that any result of the lerp would be less or equal to U, it

    would have at least the number of leading 0s as in U.

    While being quite a specific situation, it is fairly common in computer

    graphics in the shape of alpha blending.

    Modifies given KnownOut in-place with the inferred information.

    Defined at line 372 of file llvm/lib/Analysis/ValueTracking.cpp

  • int validateIfNeeded (StringRef Path, bool CheckHash, bool Force, bool AllowRecovery, bool InProcess, const char * Argv0)

    Defined at line 376 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • void LLVMAddAnalysisPasses (LLVMTargetMachineRef T, LLVMPassManagerRef PM)

    Adds the target-specific analysis passes to the pass manager.

    Defined at line 373 of file llvm/lib/Target/TargetMachineC.cpp

  • const char * lto_module_get_symbol_name (lto_module_t mod, unsigned int index)

    Returns the name of the ith symbol in the object module.

    Defined at line 340 of file llvm/tools/lto/lto.cpp

  •  lto_module_get_symbol_attribute (lto_module_t mod, unsigned int index)

    Returns the attributes of the ith symbol in the object module.

    Defined at line 344 of file llvm/tools/lto/lto.cpp

  • unsigned int lto_module_get_num_asm_undef_symbols (lto_module_t mod)

    Returns the number of asm undefined symbols in the object module.

    Defined at line 349 of file llvm/tools/lto/lto.cpp

  • const char * lto_module_get_asm_undef_symbol_name (lto_module_t mod, unsigned int index)

    Returns the name of the ith asm undefined symbol in the object module.

    Defined at line 353 of file llvm/tools/lto/lto.cpp

  • const char * lto_module_get_linkeropts (lto_module_t mod)

    Returns the module's linker options.

    The linker options may consist of multiple flags. It is the linker's

    responsibility to split the flags using a platform-specific mechanism.

    Defined at line 358 of file llvm/tools/lto/lto.cpp

  • lto_bool_t lto_module_get_macho_cputype (lto_module_t mod, unsigned int * out_cputype, unsigned int * out_cpusubtype)

    If targeting mach-o on darwin, this function gets the CPU type and subtype

    that will end up being encoded in the mach-o header. These are the values

    that can be found in mach/machine.h.

    and

    must be non-NULL.

    Returns true on error (check lto_get_error_message() for details).

    Defined at line 362 of file llvm/tools/lto/lto.cpp

  • hash_code hashInstructionMapping (unsigned int ID, unsigned int Cost, const RegisterBankInfo::ValueMapping * OperandsMapping, unsigned int NumOperands)

    Defined at line 373 of file llvm/lib/CodeGen/RegisterBankInfo.cpp

  • bool isSSA (const MachineFunction & MF)

    Defined at line 373 of file llvm/lib/CodeGen/MIRParser/MIRParser.cpp

  • unsigned int convertTailJumpOpcode (unsigned int Opcode)

    Replace TAILJMP opcodes with their equivalent opcodes that have encoding

    information.

    Defined at line 373 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • const char * findLastDigit (const char * CurPtr, unsigned int DefaultRadix)

    Defined at line 374 of file llvm/lib/MC/MCParser/AsmLexer.cpp

  • int ParseIfExpr ()

    ifexpr ::= 'if' expression 'then' expression 'else' expression

    Defined at line 374 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • const coff_relocation * getFirstReloc (const coff_section * Sec, MemoryBufferRef M, const uint8_t * Base)

    Defined at line 375 of file llvm/lib/Object/COFFObjectFile.cpp

  • bool runCVP (Module & M)

    Defined at line 375 of file llvm/lib/Transforms/IPO/CalledValuePropagation.cpp

  • std::tuple<SDValue, SDValue, MachineMemOperand *> spillIncomingStatepointValue (SDValue Incoming, SDValue Chain, SelectionDAGBuilder & Builder)

    Spill a value incoming to the statepoint. It might be either part of

    vmstate

    or gcstate. In both cases unconditionally spill it on the stack unless it

    is a null constant. Return pair with first element being frame index

    containing saved value and second element with outgoing chain from the

    emitted store

    Defined at line 375 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • void printNBits (raw_ostream & Out, Kind Kind, uint64_t Val)

    Defined at line 376 of file llvm/lib/Object/ArchiveWriter.cpp

  • void initializeLegacyLICMPassPassOnce (PassRegistry & Registry)

    Defined at line 376 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void printHelp (StringRef ToolName, const SymbolizerOptTable & Tbl, raw_ostream & OS)

    Defined at line 376 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • Error getSectionContents (const COFFObjectFile * Obj, const std::vector<RelocationRef> & Rels, uint64_t Offset, ArrayRef<uint8_t> & Contents, uint64_t & Addr)

    Given a vector of relocations for a section and an offset into this section

    the function resolves the symbol used for the relocation at the offset and

    returns the section content and the address inside the content pointed to

    by the symbol.

    Defined at line 376 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • void emitDXILOpAttributes (const RecordKeeper & Records, ArrayRef<DXILOperationDesc> Ops, raw_ostream & OS)

    Emit a table of bools denoting a DXIL op's function attributes

    Defined at line 376 of file llvm/utils/TableGen/DXILEmitter.cpp

  • bool linkFiles (const char * argv0, LLVMContext & Context, Linker & L, const cl::list<std::string> & Files, unsigned int Flags)

    Defined at line 376 of file llvm/tools/llvm-link/llvm-link.cpp

  • bool canTransformAccumulatorRecursion (Instruction * I, CallInst * CI)

    Defined at line 377 of file llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp

  • void getSegment (const MachOObjectFile * Obj, const MachOObjectFile::LoadCommandInfo & L, MachOSegment & Segment)

    Defined at line 377 of file llvm/tools/llvm-readobj/MachODumper.cpp

  • void RunEliminateNewDuplicatePHINode (const char * AsmText, function Check)

    Helper to run both versions on the same input.

    Defined at line 378 of file llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp

  • Array getFunctionDiffListAsJSON (const SmallVector<FunctionDiff> & FunctionDiffs, const FilesPresent & WhichFiles)

    Returns

    a json::Array representing all FunctionDiffs in

    represents which files the functions in

    appeared in (A, B, or both).

    Defined at line 378 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • bool canonicalHeaderAndLatch (VPBlockBase * HeaderVPB, const VPDominatorTree & VPDT)

    Checks if

    is a loop header block in the plain CFG; that is, it

    has exactly 2 predecessors (preheader and latch), where the block

    dominates the latch and the preheader dominates the block. If it is a

    header block return true and canonicalize the predecessors of the header

    (making sure the preheader appears first and the latch second) and the

    successors of the latch (making sure the loop exit comes first). Otherwise

    return false.

    Defined at line 378 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • void calculateCXXStateNumbers (WinEHFuncInfo & FuncInfo, const Instruction * FirstNonPHI, int ParentState)

    Starting from a EHPad, Backward walk through control-flow graph

    to produce two primary outputs:

    FuncInfo.EHPadStateMap[] and FuncInfo.CxxUnwindMap[]

    Defined at line 378 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • void buildCopyFromRegs (MachineIRBuilder & B, ArrayRef<Register> OrigRegs, ArrayRef<Register> Regs, LLT LLTy, LLT PartLLT, ArgFlagsTy Flags)

    Create a sequence of instructions to combine pieces split into register

    typed values to the original IR value.

    contains the destination

    value registers of type

    and

    contains the legalized pieces

    with type

    This is used for incoming values (physregs to vregs).

    Defined at line 378 of file llvm/lib/CodeGen/GlobalISel/CallLowering.cpp

  • void EndEmitFunction (raw_ostream & OS)

    Defined at line 379 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  • int createDumper (const ObjectFile & Obj)

    Defined at line 379 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • VPBasicBlock * getPredicatedThenBlock (VPRegionBlock * R)

    If

    is a triangle region, return the 'then' block of the triangle.

    Defined at line 379 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void populateWorklist (Loop & L, LoopVector & LoopList)

    Defined at line 379 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • void emitAbsValue (MCStreamer & OS, const MCExpr * Value, unsigned int Size)

    Defined at line 380 of file llvm/lib/MC/MCDwarf.cpp

  • void verifyAssemblyUseListOrder (const Module & M)

    Defined at line 380 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • void addRegLanes (SmallVectorImpl<VRegMaskOrUnit> & RegUnits, VRegMaskOrUnit Pair)

    Defined at line 380 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • GenericValue executeFCMP_OEQ (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 380 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • Error registerJITLoaderPerfEndImpl ()

    Defined at line 380 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • void generateGetName (ArrayRef Records, raw_ostream & OS, StringRef Enum, const DirectiveLanguage & DirLang, StringRef Prefix)

    Generate function implementation for get

    <Enum

    >Name(StringRef Str)

    Defined at line 380 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • void SignalHandler (int Sig, siginfo_t * Info, void * )

    The signal handler that runs.

    Defined at line 380 of file llvm/lib/Support/Unix/Signals.inc

  • void BuildInputAnnotations (const SourceMgr & SM, unsigned int CheckFileBufferID, const std::pair<unsigned int, unsigned int> & ImpPatBufferIDRange, const std::vector<FileCheckDiag> & Diags, std::vector<InputAnnotation> & Annotations, unsigned int & LabelWidth)

    Defined at line 380 of file llvm/utils/FileCheck/FileCheck.cpp

  • AsmToken intToken (StringRef Ref, APInt & Value)

    Defined at line 381 of file llvm/lib/MC/MCParser/AsmLexer.cpp

  • bool CC_X86_32_I128_FP128 (unsigned int & ValNo, MVT & ValVT, MVT & LocVT, CCValAssign::LocInfo & LocInfo, ISD::ArgFlagsTy & ArgFlags, CCState & State)

    Special handling for i128 and fp128: on x86-32, i128 and fp128 get legalized

    as four i32s, but fp128 must be passed on the stack with 16-byte alignment.

    Technically only fp128 has a specified ABI, but it makes sense to handle

    i128 the same until we hear differently.

    Defined at line 381 of file llvm/lib/Target/X86/X86CallingConv.cpp

  • Libcall getRTLibDesc (unsigned int Opcode, unsigned int Size)

    Defined at line 381 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • Cursor maybeLexJumpTableIndex (Cursor C, MIToken & Token)

    Defined at line 382 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • bool hasDuplicates (const SmallVectorImpl<VPBlockBase *> & VPBlockVec)

    Utility function that checks whether

    has duplicate

    VPBlockBases.

    Defined at line 382 of file llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp

  • unique_ptr ParseTopLevelExpr ()

    toplevelexpr ::= expression

    Defined at line 382 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • unsigned int getDepthOfOptCmov (unsigned int TrueOpDepth, unsigned int FalseOpDepth)

    Parameters

    TrueOpDepth depth cost of CMOV true value operand.
    FalseOpDepth depth cost of CMOV false value operand.

    Defined at line 382 of file llvm/lib/Target/X86/X86CmovConversion.cpp

  • void writeV5IncludeAndFileTable (const DWARFDebugLine::Prologue & Prologue, AsmPrinter & Asm)

    Defined at line 382 of file llvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp

  • void printBinaryArchs (LLVMContext & LLVMCtx, const Binary * Binary, raw_ostream & OS)

    Defined at line 382 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • bool LinearizeExprTree (Instruction * I, SmallVectorImpl<RepeatedValue> & Ops, ReassociatePass::OrderedSet & ToRedo, OverflowTracking & Flags)

    Given an associative binary expression, return the leaf

    nodes in Ops along with their weights (how many times the leaf occurs). The

    original expression is the same as

    (Ops[0].first op Ops[0].first op ... Ops[0].first)

    <

    - Ops[0].second times

    op

    (Ops[1].first op Ops[1].first op ... Ops[1].first)

    <

    - Ops[1].second times

    op

    ...

    op

    (Ops[N].first op Ops[N].first op ... Ops[N].first)

    <

    - Ops[N].second times

    Note that the values Ops[0].first, ..., Ops[N].first are all distinct.

    This routine may modify the function, in which case it returns 'true'. The

    changes it makes may well be destructive, changing the value computed by 'I'

    to something completely different. Thus if the routine returns 'true' then

    you MUST either replace I with a new expression computed from the Ops array,

    or use RewriteExprTree to put the values back in.

    A leaf node is either not a binary operation of the same kind as the root

    node 'I' (i.e. is not a binary operator at all, or is, but with a different

    opcode), or is the same kind of binary operator but has a use which either

    does not belong to the expression, or does belong to the expression but is

    a leaf node. Every leaf node has at least one use that is a non-leaf node

    of the expression, while for non-leaf nodes (except for the root 'I') every

    use is a non-leaf node of the expression.

    For example:

    expression graph node names

    + | I

    /

    \

    |

    + + | A, B

    /

    \

    /

    \

    |

    * + * | C, D, E

    /

    \

    /

    \

    /

    \

    |

    + * | F, G

    The leaf nodes are C, E, F and G. The Ops array will contain (maybe not in

    that order) (C, 1), (E, 1), (F, 2), (G, 2).

    The expression is maximal: if some instruction is a binary operator of the

    same kind as 'I', and all of its uses are non-leaf nodes of the expression,

    then the instruction also belongs to the expression, is not a leaf node of

    it, and its operands also belong to the expression (but may be leaf nodes).

    NOTE: This routine will set operands of non-leaf non-root nodes to undef in

    order to ensure that every non-root node in the expression has *exactly one*

    use by a non-leaf node of the expression. This destruction means that the

    caller MUST either replace 'I' with a new expression or use something like

    RewriteExprTree to put the values back in if the routine indicates that it

    made a change by returning 'true'.

    In the above example either the right operand of A or the left operand of B

    will be replaced by undef. If it is B's operand then this gives:

    + | I

    /

    \

    |

    + + | A, B - operand of B replaced with undef

    /

    \

    \

    |

    * + * | C, D, E

    /

    \

    /

    \

    /

    \

    |

    + * | F, G

    Note that such undef operands can only be reached by passing through 'I'.

    For example, if you visit operands recursively starting from a leaf node

    then you will never see such an undef operand unless you get back to 'I',

    which requires passing through a phi node.

    Note that this routine may also mutate binary operators of the wrong type

    that have all uses inside the expression (i.e. only used by non-leaf nodes

    of the expression) if it can turn them into binary operators of the right

    type and thus make the expression bigger.

    Defined at line 382 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • void lto_codegen_set_diagnostic_handler (lto_code_gen_t , lto_diagnostic_handler_t , void * )

    Set a diagnostic handler and the related context (void *).

    This is more general than lto_get_error_message, as the diagnostic handler

    can be called at anytime within lto.

    Defined at line 383 of file llvm/tools/lto/lto.cpp

  • uint64_t getUniqueCaseValue (int & CasesTaken, uint64_t MaxValue, RandomIRBuilder & IB)

    Return a case value that is not already taken to make sure we don't have two

    cases with same value.

    Defined at line 383 of file llvm/lib/FuzzMutate/IRMutator.cpp

  • Expected loadSectionHeaders (PDBFile & File, DbgHeaderType Type)

    Defined at line 383 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • bool tryToFPToSat (Instruction & I, TargetTransformInfo & TTI)

    Fold smin(smax(fptosi(x), C1), C2) to llvm.fptosi.sat(x), providing C1 and

    C2 saturate the value of the fp conversion. The transform is not reversable

    as the fptosi.sat is more defined than the input - all values produce a

    valid value for the fptosi.sat, where as some produce poison for original

    that were out of range of the integer conversion. The reversed pattern may

    use fmax and fmin instead. As we cannot directly reverse the transform, and

    it is not always profitable, we make it conditional on the cost being

    reported as lower by TTI.

    Defined at line 383 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • int llvm_ifs_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 383 of file llvm/tools/llvm-ifs/llvm-ifs.cpp

  • void initializeTargetPassConfigPassOnce (PassRegistry & Registry)

    ===---------------------------------------------------------------------===//

    TargetPassConfig

    ===---------------------------------------------------------------------===//

    Defined at line 384 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • template <typename T>
    void dontExplain (LinePrinter & Printer, T & Stream, uint32_t Offset)

    Defined at line 384 of file llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp

  • bool maybeEndlessLoop (const Loop & L)

    Return true if

    might be an endless loop.

    Defined at line 384 of file llvm/lib/Analysis/MustExecute.cpp

  • void replaceCoroEnd (AnyCoroEndInst * End, const coro::Shape & Shape, Value * FramePtr, bool InRamp, CallGraph * CG)

    Defined at line 384 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • unsigned int getINCDECFromLEA (unsigned int LEAOpcode, bool IsINC)

    Defined at line 384 of file llvm/lib/Target/X86/X86FixupLEAs.cpp

  • uint64_t computeSymbolTableSize (Kind Kind, uint64_t NumSyms, uint64_t OffsetSize, uint64_t StringTableSize, uint32_t * Padding)

    Defined at line 384 of file llvm/lib/Object/ArchiveWriter.cpp

  • void writeFragment (raw_ostream & OS, const MCAssembler & Asm, const MCFragment & F)

    Write the fragment

    to the output file.

    Defined at line 384 of file llvm/lib/MC/MCAssembler.cpp

  • bool isYAMLTextStub (const FileType & Kind)

    Defined at line 385 of file llvm/lib/TextAPI/InterfaceFile.cpp

  • bool hasNoUnsignedWrap (BinaryOperator & I)

    Defined at line 385 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void printStackObjectReference (raw_ostream & OS, const MFPrintState & State, int FrameIndex)

    Defined at line 385 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • Error addSymbolsToRenameFromFile (int & SymbolsToRename, BumpPtrAllocator & Alloc, StringRef Filename)

    Defined at line 385 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • InputArgList parseOptions (int Argc, char *[] Argv, bool IsAddr2Line, StringSaver & Saver, SymbolizerOptTable & Tbl)

    Defined at line 385 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • bool slotOnlyDiscardsData (const Value * RetVal, const Value * CallVal, SmallVectorImpl<unsigned int> & RetIndices, SmallVectorImpl<unsigned int> & CallIndices, bool AllowDifferingSizes, const TargetLoweringBase & TLI, const DataLayout & DL)

    Return true if this scalar return value only has bits discarded on its path

    from the "tail call" to the "ret". This includes the obvious noop

    instructions handled by getNoopInput above as well as free truncations (or

    extensions prior to the call).

    Defined at line 385 of file llvm/lib/CodeGen/Analysis.cpp

  • DeltaTreeNode * getRoot (void * Root)

    Defined at line 386 of file llvm/lib/Support/DeltaTree.cpp

  • Cursor maybeLexStackObject (Cursor C, MIToken & Token)

    Defined at line 386 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • bool safeToMergeTerminators (Instruction * SI1, Instruction * SI2, SmallSetVector<BasicBlock *, 4> * FailBlocks)

    Return true if it is safe to merge these two

    terminator instructions together.

    Defined at line 386 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void p_ere (struct parse * , int )

    - p_ere - ERE parser top level, concatenation and alternation

    Defined at line 386 of file llvm/lib/Support/regcomp.c

  • basic_string computeX86DataLayout (const Triple & TT)

    Defined at line 386 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • bool parseBasicType (char C, BasicType & Type)

    Defined at line 386 of file llvm/lib/Demangle/RustDemangle.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const PathType & Path)

    Defined at line 387 of file llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp

  • template <typename ListOfBBs, typename DominanceAnalysis>
    MachineBasicBlock * FindIDom (MachineBasicBlock & Block, ListOfBBs BBs, DominanceAnalysis & Dom, bool Strict)

    Helper function to find the immediate (post) dominator.

    Defined at line 387 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • bool needsStatepoint (CallBase * Call, const TargetLibraryInfo & TLI)

    Defined at line 387 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • basic_string radixName (unsigned int Radix)

    Defined at line 387 of file llvm/lib/MC/MCParser/AsmLexer.cpp

  • template <typename T, typename SubstreamRangeT>
    void explainSubstreamOffset (LinePrinter & P, uint32_t OffsetInStream, T & Stream, const SubstreamRangeT & Substreams)

    Defined at line 387 of file llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp

  • bool findLoopComponents (Loop * L, SmallPtrSetImpl<Instruction *> & IterationInstructions, PHINode *& InductionPHI, Value *& TripCount, BinaryOperator *& Increment, BranchInst *& BackBranch, ScalarEvolution * SE, bool IsWidened)

    Finds the induction variable, increment and trip count for a simple loop that

    we can flatten.

    Defined at line 388 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • bool isNotExclusivelyConstantDerived (const Value * V)

    Defined at line 389 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • NamedIdentifierNode * synthesizeNamedIdentifier (ArenaAllocator & Arena, basic_string_view Name)

    Defined at line 389 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • void hasher_init_base (llvm_blake3_hasher * self, const uint32_t[8] key, uint8_t flags)

    Defined at line 389 of file llvm/lib/Support/BLAKE3/blake3.c

  • StringRef checkStr (StringRef Str, unsigned int ExpectedLen)

    Defined at line 389 of file llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp

  • lto_code_gen_t createCodeGen (bool InLocalContext)

    Defined at line 389 of file llvm/tools/lto/lto.cpp

  • Cursor maybeLexFixedStackObject (Cursor C, MIToken & Token)

    Defined at line 390 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • bool hasNoSignedWrap (BinaryOperator & I)

    Defined at line 390 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • DieOutputPlacement getFinalPlacementForEntry (const UnitEntryPairTy & Entry, DieOutputPlacement Placement)

    This function tries to set specified

    for the

    Depending on the concrete entry, the placement could be:

    a) changed to another.

    b) joined with current entry placement.

    c) set as requested.

    Defined at line 390 of file llvm/lib/DWARFLinker/Parallel/DependencyTracker.cpp

  • bool CanGenerateTest (Loop * L, Value * Count)

    Defined at line 390 of file llvm/lib/CodeGen/HardwareLoops.cpp

  • bool scavengeFrameVirtualRegsInBlock (MachineRegisterInfo & MRI, RegScavenger & RS, MachineBasicBlock & MBB)

    Allocate (scavenge) vregs inside a single basic block.

    Returns true if the target spill callback created new vregs and a 2nd pass

    is necessary.

    Defined at line 390 of file llvm/lib/CodeGen/RegisterScavenging.cpp

  • Error error (const Twine & Message)

    Defined at line 391 of file llvm/lib/Bitcode/Reader/MetadataLoader.cpp

  • void printLoopVector (const LoopVector & LV)

    Defined at line 391 of file llvm/lib/Transforms/Scalar/LoopFuse.cpp

  • Error writePublics (BinaryStreamWriter & Writer, ArrayRef Publics)

    Serialize each public and write it.

    Defined at line 391 of file llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp

  • bool writeCOFF (COFFParser & CP, raw_ostream & OS)

    Defined at line 391 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • void ErrorAndExit (const Twine & Msg)

    Defined at line 392 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • void verifyUseListOrder (const Module & M)

    Defined at line 392 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • void createSegmentsForValues (LiveRange & LR, int VNIs)

    Defined at line 392 of file llvm/lib/CodeGen/LiveIntervals.cpp

  • Error resolveSymbolName (const std::vector<RelocationRef> & Rels, uint64_t Offset, StringRef & Name)

    Given a vector of relocations for a section and an offset into this section

    the function returns the name of the symbol used for the relocation at the

    offset.

    Defined at line 392 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • bool replaceFoldableUses (Instruction * Cond, Value * ToVal, BasicBlock * KnownAtEndOfBB)

    Replace uses of Cond with ToVal when safe to do so. If all uses are

    replaced, we can remove Cond. We cannot blindly replace all uses of Cond

    because we may incorrectly replace uses when guards/assumes are uses of

    of `Cond` and we used the guards/assume to reason about the `Cond` value

    at the end of block. RAUW unconditionally replaces all uses

    including the guards/assumes themselves and the uses before the

    guard/assume.

    Defined at line 392 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • template <typename Operation>
    const GlobalObject * findBaseObject (const Constant * C, DenseSet<const GlobalAlias *> & Aliases, const Operation & Op)

    Defined at line 392 of file llvm/lib/IR/Globals.cpp

  • unique_ptr ParseExtern ()

    external ::= 'extern' prototype

    Defined at line 393 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void installExceptionOrSignalHandlers ()

    Defined at line 393 of file llvm/lib/Support/CrashRecoveryContext.cpp

  • void enqueueBlock (int & Comparisons, BCECmpBlock && Comparison)

    Defined at line 393 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • bool isConditionalOnXorOfPHIs (const SelectInst * SI, const PHINode * P1, const PHINode * P2, const Loop & L)

    Checks that

    and

    are used together in an XOR in the use-def chain

    of

    condition, ignoring any casts. The purpose of this function is to

    ensure that LHSAux from the SimpleRecurrence is used correctly in the CRC

    computation.

    In other words, it checks for the following pattern:

    loop:

    %P1 = phi [_, %entry], [%P1.next, %loop]

    %P2 = phi [_, %entry], [%P2.next, %loop]

    ...

    %xor = xor (CastOrSelf %P1), (CastOrSelf %P2)

    where %xor is in the use-def chain of

    condition.

    Defined at line 393 of file llvm/lib/Analysis/HashRecognize.cpp

  • Expected readTriple (BitstreamCursor & Stream)

    Defined at line 393 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool canRewriteGEPAsOffset (Value * Start, Value * Base, GEPNoWrapFlags & NW, const DataLayout & DL, SetVector<Value *> & Explored)

    Returns true if we can rewrite Start as a GEP with pointer Base

    and some integer offset. The nodes that need to be re-written

    for this transformation will be added to Explored.

    Defined at line 393 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void initializeLCSSAVerificationPassPassOnce (PassRegistry & Registry)

    Defined at line 394 of file llvm/lib/Analysis/LoopPass.cpp

  • Cursor maybeLexConstantPoolItem (Cursor C, MIToken & Token)

    Defined at line 394 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • uint32_t getCPUType (MachOObjectFile & MachO)

    Defined at line 394 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • bool shouldForceLegacyPM ()

    For use in NPM transition.

    Defined at line 394 of file llvm/tools/opt/optdriver.cpp

  • void setRegZero (SmallVectorImpl<VRegMaskOrUnit> & RegUnits, VirtRegOrUnit VRegOrUnit)

    Defined at line 394 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • void addVPMetadata (Module & M, Instruction & I, ArrayRef CalleeGuids)

    Helper function to process CalleeGuids and create value profile metadata

    Defined at line 394 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • bool isAnalyzableBB (const TargetInstrInfo & TII, MachineBasicBlock & Entry)

    Defined at line 395 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • bool isIFunc (const MCSymbolELF * Symbol)

    Defined at line 395 of file llvm/lib/MC/ELFObjectWriter.cpp

  • PassPluginLibraryInfo getExampleIRTransformsPluginInfo ()

    New PM Registration

    Defined at line 395 of file llvm/examples/IRTransforms/SimplifyCFG.cpp

  • Expected areFilesDifferent (const llvm::Twine & Source, const llvm::Twine & Destination)

    Defined at line 395 of file llvm/lib/Support/VirtualOutputBackends.cpp

  • void llvm_blake3_hasher_init (llvm_blake3_hasher * self)

    Defined at line 396 of file llvm/lib/Support/BLAKE3/blake3.c

  • ConstantInt * getPreferredVectorIndex (ConstantInt * IndexC)

    Given a constant index for a extractelement or insertelement instruction,

    return it with the canonical type if it isn't already canonical. We

    arbitrarily pick 64 bit as our canonical type. The actual bitwidth doesn't

    matter, we just want a consistent type to simplify CSE.

    Defined at line 396 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • QualifiedNameNode * synthesizeQualifiedName (ArenaAllocator & Arena, IdentifierNode * Identifier)

    Defined at line 396 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • void ParseConstraints (StringRef CStr, CGIOperandList & Ops, const Record * Rec)

    Defined at line 396 of file llvm/utils/TableGen/Common/CodeGenInstruction.cpp

  • void checkClobberSanity (const MemoryAccess * Start, MemoryAccess * ClobberAt, const MemoryLocation & StartLoc, const MemorySSA & MSSA, const UpwardsMemoryQuery & Query, BatchAAResults & AA, bool AllowImpreciseClobber)

    Verifies that `Start` is clobbered by `ClobberAt`, and that nothing

    inbetween `Start` and `ClobberAt` can clobbers `Start`.

    This is meant to be as simple and self-contained as possible. Because it

    uses no cache, etc., it can be relatively expensive.

    Parameters

    Start The MemoryAccess that we want to walk from.
    ClobberAt A clobber for Start.
    StartLoc The MemoryLocation for Start.
    MSSA The MemorySSA instance that Start and ClobberAt belong to.
    Query The UpwardsMemoryQuery we used for our search.
    AA The AliasAnalysis we used for our search.
    AllowImpreciseClobber Always false, unless we do relaxed verify.

    Defined at line 396 of file llvm/lib/Analysis/MemorySSA.cpp

  • void loadDylibs ()

    Defined at line 397 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • FPUKind findSinglePrecisionFPU (FPUKind InputFPUKind)

    Defined at line 397 of file llvm/lib/TargetParser/ARMTargetParser.cpp

  • template <typename T>
    auto & getSubrangeImpl (LaneBitmask LM, T & LI)

    Find a subrange corresponding to the exact lane mask

    in the live

    interval

    The interval

    is assumed to contain such a subrange.

    This function is used to find corresponding subranges between the

    original interval and the new intervals.

    Defined at line 398 of file llvm/lib/CodeGen/SplitKit.cpp

  •  llvm_orc_registerJITLoaderPerfImpl (const char * ArgData, size_t ArgSize)

    Defined at line 398 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • void convertStackObjects (yaml::MachineFunction & YMF, const MachineFunction & MF, ModuleSlotTracker & MST, MFPrintState & State)

    Defined at line 396 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • bool compressAnnotation (uint32_t Data, SmallVectorImpl<char> & Buffer)

    Defined at line 397 of file llvm/lib/MC/MCCodeView.cpp

  • bool optimizeToFixedRegisterForm (MCInst & MI)

    Simplify FOO $imm, %{al,ax,eax,rax} to FOO $imm, for instruction with

    a short fixed-register form.

    Defined at line 397 of file llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimization.cpp

  • void streamMapping (yaml::IO & IO, ThreadListStream & Stream)

    Defined at line 398 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • void llvm_blake3_hasher_init_keyed (llvm_blake3_hasher * self, const uint8_t[32] key)

    Defined at line 398 of file llvm/lib/Support/BLAKE3/blake3.c

  • Cursor maybeLexSubRegisterIndex (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 398 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const FusionCandidate & FC)

    Defined at line 398 of file llvm/lib/Transforms/Scalar/LoopFuse.cpp

  • void ClearSubclassDataAfterReassociation (BinaryOperator & I)

    Conservatively clears subclassOptionalData after a reassociation or

    commutation. We preserve fast-math flags when applicable as they can be

    preserved.

    Defined at line 398 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • LoopDeletionResult breakBackedgeIfNotTaken (Loop * L, DominatorTree & DT, ScalarEvolution & SE, LoopInfo & LI, MemorySSA * MSSA, OptimizationRemarkEmitter & ORE)

    If we can prove the backedge is untaken, remove it. This destroys the

    loop, but leaves the (now trivially loop invariant) control flow and

    side effects (if any) in place.

    Defined at line 398 of file llvm/lib/Transforms/Scalar/LoopDeletion.cpp

  • phi_iterator_impl getPhiIt (BasicBlock & BB, unsigned int Idx)

    Defined at line 399 of file llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const CHRStats & Stats)

    Defined at line 399 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • void initializeDwarfEHPrepareLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 399 of file llvm/lib/CodeGen/DwarfEHPrepare.cpp

  • CodeGenOptLevel getOptLevel ()

    Defined at line 399 of file llvm/tools/lli/lli.cpp

  • void ProfileArgumentInit (FoldingSetNodeID & ID, const Init * Value, variant Aux)

    Defined at line 399 of file llvm/lib/TableGen/Record.cpp

  • Metadata * updateLoopMetadataDebugLocationsRecursive (Metadata * MetadataIn, function_ref Updater)

    Recursively handle DILocations in followup metadata etc.

    TODO: If for example a followup loop metadata would reference itself this

    function would go into infinite recursion. We do not expect such cycles in

    the loop metadata (except for the self-referencing first element

    "LoopID"). However, we could at least handle such situations more gracefully

    somehow (e.g. by keeping track of visited nodes and dropping metadata).

    Defined at line 399 of file llvm/lib/IR/DebugInfo.cpp

  • bool FixIrreducibleImpl (Function & F, CycleInfo & CI, DominatorTree & DT, LoopInfo * LI)

    Defined at line 399 of file llvm/lib/Transforms/Utils/FixIrreducible.cpp

  • void shuffleValueUseLists (Value * V, std::minstd_rand0 & Gen, DenseSet<Value *> & Seen)

    Defined at line 399 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • bool isUnsupportedFunction (Function * F)

    Determines whether a function is unsupported by the current mutator's

    implementation. The function returns true if any of the following criteria

    are met:

    * The function accepts metadata or token types as arguments.

    * The function has ABI attributes that could cause UB.

    * The function uses a non-callable CC that may result in UB.

    Defined at line 399 of file llvm/lib/FuzzMutate/IRMutator.cpp

  • void codegen (const Config & Conf, TargetMachine * TM, int AddStream, unsigned int Task, Module & Mod, const ModuleSummaryIndex & CombinedIndex)

    Defined at line 400 of file llvm/lib/LTO/LTOBackend.cpp

  • int prune (cas::ObjectStore & CAS)

    Defined at line 401 of file llvm/tools/llvm-cas/llvm-cas.cpp

  • lto_code_gen_t lto_codegen_create ()

    Instantiates a code generator.

    Returns NULL on error (check lto_get_error_message() for details).

    All modules added using

    must have been created

    in the same context as the codegen.

    Defined at line 401 of file llvm/tools/lto/lto.cpp

  • uint8_t modRMByte (unsigned int Mod, unsigned int RegOpcode, unsigned int RM)

    Defined at line 401 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

  • basic_string getLegalCName (StringRef OpName)

    Defined at line 401 of file llvm/utils/TableGen/FastISelEmitter.cpp

  • bool isPromotedResultSafe (Instruction * I)

    Return whether we can safely mutate V's type to ExtTy without having to be

    concerned with zero extending or truncation.

    Defined at line 401 of file llvm/lib/CodeGen/TypePromotion.cpp

  • void rewritePHINodesForUnswitchedExitBlock (BasicBlock & UnswitchedBB, BasicBlock & OldExitingBB, BasicBlock & OldPH)

    Rewrite the PHI nodes in an unswitched loop exit basic block.

    Requires that the loop exit and unswitched basic block are the same, and

    that the exiting block was a unique predecessor of that block. Rewrites the

    PHI nodes in that block such that what were LCSSA PHI nodes become trivial

    PHI nodes from the old preheader that now contains the unswitched

    terminator.

    Defined at line 401 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • Value * createFakeIntVal (IRBuilderBase & Builder, InsertPoint OuterAllocaIP, llvm::SmallVectorImpl<Instruction *> & ToBeDeleted, InsertPoint InnerAllocaIP, const Twine & Name, bool AsPtr)

    This function creates a fake integer value and a fake use for the integer

    value. It returns the fake value created. This is useful in modeling the

    extra arguments to the outlined functions.

    Defined at line 401 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void printLTOSymbolAttributes ( Attrs)

    Print the lto symbol attributes.

    Defined at line 401 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • bool mergeReplicateRegionsIntoSuccessors (VPlan & Plan)

    Merge replicate regions in their successor region, if a replicate region

    is connected to a successor replicate region with the same predicate by a

    single, empty VPBasicBlock.

    Defined at line 401 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void initializeX86ExecutionDomainFixPassOnce (PassRegistry & Registry)

    Defined at line 402 of file llvm/lib/Target/X86/X86TargetMachine.cpp

  • void streamMapping (yaml::IO & IO, MinidumpYAML::ExceptionStream & Stream)

    Defined at line 402 of file llvm/lib/ObjectYAML/MinidumpYAML.cpp

  • Error updateSection (const NewSectionInfo & NewSection, Object & O)

    Defined at line 402 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • LLVMMCJITMemoryManagerRef LLVMCreateSimpleMCJITMemoryManager (void * Opaque, LLVMMemoryManagerAllocateCodeSectionCallback AllocateCodeSection, LLVMMemoryManagerAllocateDataSectionCallback AllocateDataSection, LLVMMemoryManagerFinalizeMemoryCallback FinalizeMemory, LLVMMemoryManagerDestroyCallback Destroy)

    Create a simple custom MCJIT memory manager. This memory manager can

    intercept allocations in a module-oblivious way. This will return NULL

    if any of the passed functions are NULL.

    Parameters

    Opaque An opaque client object to pass back to the callbacks.
    AllocateCodeSection Allocate a block of memory for executable code.
    AllocateDataSection Allocate a block of memory for data.
    FinalizeMemory Set page permissions and flush cache. Return 0 on success, 1 on error.

    Defined at line 402 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • bool filterArch (ObjectFile & Obj)

    Return true if the object file has not been filtered by an --arch option.

    Defined at line 402 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • bool hasSupportedLoopDepth (ArrayRef LoopList, OptimizationRemarkEmitter & ORE)

    Defined at line 402 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • PHINode * getPhi (BasicBlock & BB, unsigned int Idx)

    Defined at line 403 of file llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp

  • Error writeRecords (BinaryStreamWriter & Writer, ArrayRef Records)

    Defined at line 403 of file llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp

  • bool containsUnconditionalCallSafepoint (Loop * L, BasicBlock * Header, BasicBlock * Pred, DominatorTree & DT, const TargetLibraryInfo & TLI)

    Returns true if this loop is known to contain a call safepoint which

    must unconditionally execute on any iteration of the loop which returns

    to the loop header via an edge from Pred. Returns a conservative correct

    answer; i.e. false is always valid.

    Defined at line 403 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • template <typename K, typename V, typename FnTy, typename... ArgsTy>
    V getOrCreateCachedOptional (K Key, DenseMap<K, std::optional<V>> & Map, FnTy && Fn, ArgsTy &&... args)

    Lookup

    in

    and return the result, potentially after

    initializing the optional through

    Defined at line 404 of file llvm/lib/Analysis/MustExecute.cpp

  • void printCOFFSymbolAddress (raw_ostream & Out, const std::vector<RelocationRef> & Rels, uint64_t Offset, uint32_t Disp)

    Defined at line 404 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • int ParseForExpr ()

    forexpr ::= 'for' identifier '=' expr ',' expr (',' expr)? 'in' expression

    Defined at line 404 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • LiveInterval::SubRange & getSubRangeForMaskExact (LaneBitmask LM, LiveInterval & LI)

    Defined at line 405 of file llvm/lib/CodeGen/SplitKit.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const CHRScope & Scope)

    Defined at line 405 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • Loop * CloneLoopBlocks (Loop * L, Value * NewIter, const bool UseEpilogRemainder, const bool UnrollRemainder, BasicBlock * InsertTop, BasicBlock * InsertBot, BasicBlock * Preheader, std::vector<BasicBlock *> & NewBlocks, LoopBlocksDFS & LoopBlocks, ValueToValueMapTy & VMap, DominatorTree * DT, LoopInfo * LI, unsigned int Count, optional OriginalTripCount, BranchProbability OriginalLoopProb)

    Create a clone of the blocks in a loop and connect them together. A new

    loop will be created including all cloned blocks, and the iterator of the

    new loop switched to count NewIter down to 0.

    The cloned blocks should be inserted between InsertTop and InsertBot.

    InsertTop should be new preheader, InsertBot new loop exit.

    Returns the new cloned loop that is created.

    Defined at line 405 of file llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp

  • void fillAMDGCNFeatureMap (StringRef GPU, const Triple & T, StringMap<bool> & Features)

    Fills Features map with default values for given target GPU.

    contains overriding target features and this function returns

    default target features with entries overridden by

    Defined at line 405 of file llvm/lib/TargetParser/TargetParser.cpp

  • void reportError (SMDiagnostic Err, const char * ProgName)

    Defined at line 406 of file llvm/tools/lli/lli.cpp

  • QualifiedNameNode * synthesizeQualifiedName (ArenaAllocator & Arena, basic_string_view Name)

    Defined at line 406 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • MCInstrInfo * createX86MCInstrInfo ()

    Defined at line 406 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp

  • template <typename T>
    T & ifSpecified (T & A, cl::alias & AA, T & B)

    Defined at line 406 of file llvm/tools/llvm-xray/xray-graph-diff.cpp

  •  llvm_orc_registerJITLoaderPerfStart (const char * ArgData, size_t ArgSize)

    Defined at line 406 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • void emitConstant (uint64_t Val, unsigned int Size, SmallVectorImpl<char> & CB)

    Defined at line 406 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

  • void removeRegLanes (SmallVectorImpl<VRegMaskOrUnit> & RegUnits, VRegMaskOrUnit Pair)

    Defined at line 406 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • uint64_t getSegmentFileOffset (const LoadCommand & TextSegmentLoadCommand)

    Defined at line 406 of file llvm/lib/ObjCopy/MachO/MachOWriter.cpp

  • int optMain (int argc, char ** argv, ArrayRef PassBuilderCallbacks)

    ===----------------------------------------------------------------------===//

    main for opt

    Defined at line 406 of file llvm/tools/opt/optdriver.cpp

  • Error xcoff2yaml (llvm::raw_ostream & Out, const llvm::object::XCOFFObjectFile & Obj)

    Defined at line 405 of file llvm/tools/obj2yaml/xcoff2yaml.cpp

  • void llvm_blake3_hasher_init_derive_key_raw (llvm_blake3_hasher * self, const void * context, size_t context_len)

    Defined at line 405 of file llvm/lib/Support/BLAKE3/blake3.c

  • void uninstallExceptionOrSignalHandlers ()

    Defined at line 405 of file llvm/lib/Support/CrashRecoveryContext.cpp

  • lto_code_gen_t lto_codegen_create_in_local_context ()

    Instantiate a code generator in its own context.

    Instantiates a code generator in its own context. Modules added via

    must have all been created in the same context,

    using

    Defined at line 405 of file llvm/tools/lto/lto.cpp

  • int getNumPHIs (BasicBlock & BB)

    Defined at line 407 of file llvm/unittests/Transforms/Utils/SSAUpdaterBulkTest.cpp

  • Value * LogErrorV (const char * Str)

    Defined at line 407 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const FusionCandidateList & CandList)

    Defined at line 407 of file llvm/lib/Transforms/Scalar/LoopFuse.cpp

  • bool hasDirtyPred (const int & ReachableByDirty, const MachineBasicBlock & MBB)

    Determines if any predecessor of MBB is on the path from block that has use

    or def of CSRs/FI to MBB.

    ReachableByDirty: All blocks reachable from block that has use or def of

    CSR/FI.

    Defined at line 407 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • Cursor maybeLexIRBlock (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 407 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void RunRandTest (uint64_t Seed, int Size, int MinCount, int MaxCount, unsigned int MaxValue)

    Defined at line 407 of file llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp

  • APInt getStoreStride (const SCEVAddRecExpr * StoreEv)

    Defined at line 408 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • void initializeLoadStoreVectorizerLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 408 of file llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp

  • std::optional<dwarf::Form> getFormForIdxParent (const int & IndexedOffsets, optional ParentOffset)

    Defined at line 408 of file llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp

  • Error createPlistFile (StringRef Bin, StringRef BundleRoot, StringRef Toolchain)

    Defined at line 408 of file llvm/tools/dsymutil/dsymutil.cpp

  • void lto_codegen_dispose (lto_code_gen_t )

    Frees all code generator and all memory it internally allocated.

    Upon return the lto_code_gen_t is no longer valid.

    Defined at line 409 of file llvm/tools/lto/lto.cpp

  • void setSummary (IndexedInstrProf::Summary * TheSummary, ProfileSummary & PS)

    Defined at line 409 of file llvm/lib/ProfileData/InstrProfWriter.cpp

  • bool hasDistinctMetadataIntrinsic (const Function & F)

    Check whether

    has an intrinsic which references

    distinct metadata as an operand. The most common

    instance of this would be CFI checks for function-local types.

    Defined at line 409 of file llvm/lib/Transforms/IPO/MergeFunctions.cpp

  • void getSymbol (const MachOObjectFile * Obj, DataRefImpl DRI, MachOSymbol & Symbol)

    Defined at line 409 of file llvm/tools/llvm-readobj/MachODumper.cpp

  • basic_string getBranchCondString (Instruction * TI)

    Return a string describing the branch condition that can be

    used in static branch probability heuristics:

    Defined at line 409 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • Value * rewriteGlobalVariablesInConstant (Constant * C, SmallDenseMap<GlobalVariable *, Value *> & GVLoadMap, IRBuilder<> & IRBuilderAtEntry)

    Given a ConstantExpr, this searches for GlobalVariable references within

    the expression tree. If found, it will generate instructions and will

    return a non-null Value* that points to the new root instruction.

    If C does not contain any GlobalVariable references, this returns nullptr.

    If this function creates new instructions, then it will insert them

    before InsertionPoint.

    Defined at line 409 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp

  • void buildFixItLine (std::string & CaretLine, std::string & FixItLine, ArrayRef FixIts, ArrayRef SourceLine)

    Defined at line 409 of file llvm/lib/Support/SourceMgr.cpp

  • int printLineInfoForInput (bool LoadObjects, bool UseDebugObj)

    ***

    Defined at line 409 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • void initializeMachineVerifierLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 410 of file llvm/lib/CodeGen/MachineVerifier.cpp

  • const LiveInterval::SubRange & getSubRangeForMaskExact (LaneBitmask LM, const LiveInterval & LI)

    Defined at line 410 of file llvm/lib/CodeGen/SplitKit.cpp

  • char * printNode (const Node * RootNode, OutputBuffer & OB, size_t * N)

    Defined at line 410 of file llvm/lib/Demangle/ItaniumDemangle.cpp

  • MVT getPhysicalRegisterVT (SDNode * N, unsigned int Reg, const TargetInstrInfo * TII)

    getPhysicalRegisterVT - Returns the ValueType of the physical register

    definition of the specified node.

    FIXME: Move to SelectionDAG?

    Defined at line 410 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp

  • FilterResult checkSectionFilter (SectionRef S)

    Defined at line 410 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void simpleSimplifyCfg (Function & F, SmallVectorImpl<BasicBlock *> & BBs)

    Simplify the CFG without completely destroying it.

    This is not well defined, but basically comes down to "try to eliminate

    unreachable blocks and constant fold terminators without deciding that

    certain undefined behavior cuts off the program at the legs".

    Defined at line 410 of file llvm/tools/bugpoint/CrashDebugger.cpp

  • Error checkSymtabCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char ** SymtabLoadCmd, std::list<MachOElement> & Elements)

    Defined at line 410 of file llvm/lib/Object/MachOObjectFile.cpp

  • StringRef ReadStringRef (const uint8_t * Start)

    Defined at line 411 of file llvm/tools/obj2yaml/macho2yaml.cpp

  • bool suppressSpeculativeLoadForSanitizers (const Instruction & CtxI)

    Defined at line 411 of file llvm/lib/Analysis/Loads.cpp

  • void initializeMachineSchedulerLegacyPassOnce (PassRegistry & Registry)

    Defined at line 411 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • bool shouldApply (Function & F, ProfileSummaryInfo & PSI)

    Defined at line 411 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • basic_string PhysRegForNode (const TreePatternNode & Op, const CodeGenTarget & Target)

    Defined at line 411 of file llvm/utils/TableGen/FastISelEmitter.cpp

  • bool isSafeToTruncateWideIVType (const DataLayout & DL, ScalarEvolution & SE, LoopICmp LatchCheck, Type * RangeCheckType)

    Returns true if its safe to truncate the IV to RangeCheckType.

    When the IV type is wider than the range operand type, we can still do loop

    predication, by generating SCEVs for the range and latch that are of the

    same type. We achieve this by generating a SCEV truncate expression for the

    latch IV. This is done iff truncation of the IV is a safe operation,

    without loss of information.

    Another way to achieve this is by generating a wider type SCEV for the

    range check operand, however, this needs a more involved check that

    operands do not overflow. This can lead to loss of information when the

    range operand is of the form: add i32 %offset, %iv. We need to prove that

    sext(x + y) is same as sext(x) + sext(y).

    This function returns true if we can safely represent the IV type in

    the RangeCheckType without loss of information.

    Defined at line 411 of file llvm/lib/Transforms/Scalar/LoopPredication.cpp

  • Error replaceAndRemoveSections (const CommonConfig & Config, const ELFConfig & ELFConfig, Object & Obj)

    Defined at line 411 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • template <class T>
    ErrorOr<T> getAsInteger (StringRef Val)

    Defined at line 412 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • VariableSymbolNode * synthesizeVariable (ArenaAllocator & Arena, TypeNode * Type, basic_string_view VariableName)

    Defined at line 412 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • MCRegisterInfo * createX86MCRegisterInfo (const Triple & TT)

    Defined at line 412 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp

  • void addAnnotationRemarksPass (ModulePassManager & MPM)

    Helper to add AnnotationRemarksPass.

    Defined at line 413 of file llvm/lib/Passes/PassBuilderPipelines.cpp

  • bool hasIrregularType (Type * Ty, const DataLayout & DL)

    A helper function that returns true if the given type is irregular. The

    type is irregular if its allocated size doesn't equal the store size of an

    element of the corresponding vector type.

    Defined at line 413 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • bool isTargetNullPtr (ExecutionEngine * EE, void * Loc)

    isTargetNullPtr - Return whether the target pointer stored at Loc is null.

    Defined at line 413 of file llvm/lib/ExecutionEngine/ExecutionEngine.cpp

  • uint64_t computeSymbolMapSize (uint64_t NumObj, SymMap & SymMap, uint32_t * Padding)

    Defined at line 413 of file llvm/lib/Object/ArchiveWriter.cpp

  • int calculateShufflevectorMask (ArrayRef VL)

    Defined at line 413 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  •  llvm_orc_registerJITLoaderPerfEnd (const char * ArgData, size_t ArgSize)

    Defined at line 414 of file llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  • bool simplifyAssocCastAssoc (BinaryOperator * BinOp1, InstCombinerImpl & IC)

    Combine constant operands of associative operations either before or after a

    cast to eliminate one of the associative operations:

    (op (cast (op X, C2)), C1) --> (cast (op X, op (C1, C2)))

    (op (cast (op X, C2)), C1) --> (op (cast X), op (C1, C2))

    Defined at line 414 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void initializeRegisterCoalescerLegacyPassOnce (PassRegistry & Registry)

    Defined at line 415 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • void printFusionCandidates (const FusionCandidateCollection & FusionCandidates)

    Defined at line 415 of file llvm/lib/Transforms/Scalar/LoopFuse.cpp

  • template <typename T>
    void parseIntArg (const opt::InputArgList & Args, int ID, T & Value)

    Defined at line 415 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • void emitDXILOpFunctionTypes (ArrayRef<DXILOperationDesc> Ops, raw_ostream & OS)

    Emit a list of DXIL op function types

    Defined at line 415 of file llvm/utils/TableGen/DXILEmitter.cpp

  • Expected getSectionNames (PDBFile & File)

    Defined at line 416 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • Cursor maybeLexIRValue (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 417 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void markAllReachable (int & Visited, const MachineBasicBlock & MBB)

    Derives the list of all the basic blocks reachable from MBB.

    Defined at line 417 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • void printSEHTable (const COFFObjectFile * Obj, uint32_t TableVA, int Count)

    Defined at line 417 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • bool isPredicatedOnPHI (CallBase & CB)

    Return true if the call-site has an argument which is a PHI with only

    constant incoming values.

    Defined at line 417 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • OffsetResult collectOffsets (GEPOperator & GEP, const DataLayout & DL)

    Try to collect variable and constant offsets for

    partly traversing

    nested GEPs. Returns an OffsetResult with nullptr as BasePtr of collecting

    the offset fails.

    Defined at line 417 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • int llvm_get_di_tag ()

    Defined at line 417 of file llvm/tools/llvm-c-test/debuginfo.c

  • Value * getUnwindDestToken (Instruction * EHPad, UnwindDestMemoTy & MemoMap)

    Given an EH pad, find where it unwinds. If it unwinds to an EH pad,

    return that pad instruction. If it unwinds to caller, return

    ConstantTokenNone. If it does not have a definitive unwind destination,

    return nullptr.

    This routine gets invoked for calls in funclets in inlinees when inlining

    an invoke. Since many funclets don't have calls inside them, it's queried

    on-demand rather than building a map of pads to unwind dests up front.

    Determining a funclet's unwind dest may require recursively searching its

    descendants, and also ancestors and cousins if the descendants don't provide

    an answer. Since most funclets will have their unwind dest immediately

    available as the unwind dest of a catchswitch or cleanupret, this routine

    searches top-down from the given pad and then up. To avoid worst-case

    quadratic run-time given that approach, it uses a memo map to avoid

    re-processing funclet trees. The callers that rewrite the IR as they go

    take advantage of this, for correctness, by checking/forcing rewritten

    pads' entries to match the original callee view.

    Defined at line 417 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • char * printNode (const Node * RootNode, char * Buf, size_t * N)

    Defined at line 418 of file llvm/lib/Demangle/ItaniumDemangle.cpp

  • bool hasIdenticalMMOs (ArrayRef<MachineMemOperand *> LHS, ArrayRef<MachineMemOperand *> RHS)

    Check to see if the MMOs pointed to by the two MemRefs arrays are

    identical.

    Defined at line 418 of file llvm/lib/CodeGen/MachineInstr.cpp

  • bool isDispOrCDisp8 (uint64_t TSFlags, int Value, int & ImmOffset)

    Determine if this immediate can fit in a disp8 or a compressed disp8 for

    EVEX instructions.

    be set to the value to pass to the ImmOffset

    parameter of emitImmediate.

    Defined at line 418 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

  • void collectFrameAlloca (AllocaInst * AI, const coro::Shape & Shape, const SuspendCrossingInfo & Checker, SmallVectorImpl<AllocaInfo> & Allocas, const DominatorTree & DT)

    Defined at line 418 of file llvm/lib/Transforms/Coroutines/SpillUtils.cpp

  • int llvm_symbolizer_main (int argc, char ** , const llvm::ToolContext & )

    Defined at line 476 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • error_code wasm2yaml (llvm::raw_ostream & Out, const llvm::object::WasmObjectFile & Obj)

    Defined at line 424 of file llvm/tools/obj2yaml/wasm2yaml.cpp

  • int llvm_di_type_get_name ()

    Defined at line 447 of file llvm/tools/llvm-c-test/debuginfo.c

  • int llvm_add_globaldebuginfo ()

    Defined at line 474 of file llvm/tools/llvm-c-test/debuginfo.c

  • std::string & libSupportInfoOutputFilename ()

    Defined at line 553 of file llvm/lib/Support/Timer.cpp

  • bool trackSpace ()

    Defined at line 556 of file llvm/lib/Support/Timer.cpp

  • bool sortTimers ()

    Defined at line 557 of file llvm/lib/Support/Timer.cpp

  • SignpostEmitter & signposts ()

    Defined at line 558 of file llvm/lib/Support/Timer.cpp

  • sys::SmartMutex<true> & timerLock ()

    Defined at line 559 of file llvm/lib/Support/Timer.cpp

  • TimerGroup & defaultTimerGroup ()

    Defined at line 562 of file llvm/lib/Support/Timer.cpp

  • Name2PairMap & namedGroupedTimers ()

    Defined at line 565 of file llvm/lib/Support/Timer.cpp

  • bool isTimerGlobalsConstructed ()

    Defined at line 576 of file llvm/lib/Support/Timer.cpp

  • void llvm_blake3_hasher_init_derive_key (llvm_blake3_hasher * self, const char * context)

    Defined at line 417 of file llvm/lib/Support/BLAKE3/blake3.c

  • void llvm_blake3_hasher_update (llvm_blake3_hasher * self, const void * input, size_t input_len)

    Defined at line 591 of file llvm/lib/Support/BLAKE3/blake3.c

  • void llvm_blake3_hasher_finalize (const llvm_blake3_hasher * self, uint8_t * out, size_t out_len)

    Defined at line 605 of file llvm/lib/Support/BLAKE3/blake3.c

  • void llvm_blake3_hasher_finalize_seek (const llvm_blake3_hasher * self, uint64_t seek, uint8_t * out, size_t out_len)

    Defined at line 614 of file llvm/lib/Support/BLAKE3/blake3.c

  • bool InsertStackProtectors (const TargetMachine * TM, Function * F, DomTreeUpdater * DTU, bool & HasPrologue, bool & HasIRCheck)

    InsertStackProtectors - Insert code into the prologue and epilogue of the

    function.

    - The prologue code loads and stores the stack guard onto the stack.

    - The epilogue checks the value stored in the prologue against the original

    value. It calls __stack_chk_fail if they differ.

    Defined at line 574 of file llvm/lib/CodeGen/StackProtector.cpp

  • void InfoSignalHandler (int Sig)

    Defined at line 440 of file llvm/lib/Support/Unix/Signals.inc

  • const char * lbackref (struct lmat * , const char * , const char * , sopno , sopno , sopno , int )

    - backref - figure out what matched what, figuring in back references

    Defined at line 523 of file llvm/lib/Support/regengine.inc

  • const char * sbackref (struct smat * , const char * , const char * , sopno , sopno , sopno , int )

    - backref - figure out what matched what, figuring in back references

    Defined at line 523 of file llvm/lib/Support/regengine.inc

  • bool isInterleavingMask (ArrayRef<int> Mask)

    Checks the given mask, and determines whether said mask is interleaving.

    To be interleaving, a mask must alternate between `i` and `i + (Length /

    2)`, and must contain all numbers within the range of `[0..Length)` (e.g. a

    4x vector interleaving mask would be

    <

    0, 2, 1, 3>).

    Defined at line 585 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • bool isDeinterleavingMask (ArrayRef<int> Mask)

    Checks the given mask, and determines whether said mask is deinterleaving.

    To be deinterleaving, a mask must increment in steps of 2, and either start

    with 0 or 1.

    (e.g. an 8x vector deinterleaving mask would be either

    <

    0, 2, 4, 6> or

    <

    1, 3, 5, 7>).

    Defined at line 600 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • bool isNeg (Value * V)

    Returns true if the operation is a negation of V, and it works for both

    integers and floats.

    Defined at line 612 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • Value * getNegOperand (Value * V)

    Returns the operand for negation operation.

    Defined at line 616 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • bool findModulesAndOffsets (void ** StackTrace, int Depth, const char ** Modules, intptr_t * Offsets, const char * MainExecutableName, StringSaver & StrPool)

    If this is an ELF platform, we can find all loaded modules and their virtual

    addresses with dl_iterate_phdr.

    Defined at line 550 of file llvm/lib/Support/Unix/Signals.inc

  • void convertMCP (yaml::MachineFunction & MF, const MachineConstantPool & ConstantPool)

    Defined at line 602 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • void convertSRPoints (ModuleSlotTracker & MST, int & YamlSRPoints, const int & SRPoints, const TargetRegisterInfo * TRI)

    Defined at line 623 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • void convertCallSiteObjects (yaml::MachineFunction & YMF, const MachineFunction & MF, ModuleSlotTracker & MST)

    Defined at line 528 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • void convertMachineMetadataNodes (yaml::MachineFunction & YMF, const MachineFunction & MF, MachineModuleSlotTracker & MST)

    Defined at line 567 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • void convertCalledGlobals (yaml::MachineFunction & YMF, const MachineFunction & MF, MachineModuleSlotTracker & MST)

    Defined at line 580 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • bool mustBeFiniteCountedLoop (Loop * L, ScalarEvolution * SE, BasicBlock * Pred)

    Returns true if this loop is known to terminate in a finite number of

    iterations. Note that this function may return false for a loop which

    does actual terminate in a finite constant number of iterations due to

    conservatism in the analysis.

    Defined at line 445 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • Instruction * findLocationForEntrySafepoint (Function & F, DominatorTree & DT)

    Defined at line 536 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • bool isGCSafepointPoll (Function & F)

    Defined at line 591 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • bool shouldRewriteFunction (Function & F)

    Returns true if this function should be rewritten to include safepoint

    polls and parseable call sites. The main point of this function is to be

    an extension point for custom logic.

    Defined at line 598 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • bool enableEntrySafepoints (Function & F)

    TODO: These should become properties of the GCStrategy, possibly with

    command line overrides.

    Defined at line 612 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • bool enableBackedgeSafepoints (Function & F)

    Defined at line 613 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • bool enableCallSafepoints (Function & F)

    Defined at line 614 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • void InsertSafepointPoll (ilist_iterator_w_bits InsertBefore, int & ParsePointsNeeded, const TargetLibraryInfo & TLI)

    Insert a safepoint poll immediately before the given instruction. Does

    not handle the parsability of state at the runtime call, that's the

    callers job.

    Defined at line 619 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • void LLVMDisposeMCJITMemoryManager (LLVMMCJITMemoryManagerRef MM)

    Defined at line 421 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • void p_ere_exp (struct parse * )

    - p_ere_exp - parse one subERE, an atom possibly followed by a repetition op

    Defined at line 429 of file llvm/lib/Support/regcomp.c

  • void p_str (struct parse * )

    - p_str - string (no metacharacters) "parser"

    Defined at line 602 of file llvm/lib/Support/regcomp.c

  • void p_bre (struct parse * , int , int )

    - p_bre - BRE parser top level, anchoring and concatenation

    Giving end1 as OUT essentially eliminates the end1/end2 check.

    This implementation is a bit of a kludge, in that a trailing $ is first

    taken as an ordinary character and then revised to be an anchor. The

    only undesirable side effect is that '$' gets included as a character

    category in such cases. This is fairly harmless; not worth fixing.

    The amount of lookahead needed to avoid this kludge is excessive.

    Defined at line 618 of file llvm/lib/Support/regcomp.c

  • LLVMJITEventListenerRef LLVMCreateIntelJITEventListener ()

    Defined at line 429 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMJITEventListenerRef LLVMCreateOProfileJITEventListener ()

    Defined at line 436 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • LLVMJITEventListenerRef LLVMCreatePerfJITEventListener ()

    Defined at line 443 of file llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp

  • std::pair<Value *, APInt> getMask (Value * WideMask, unsigned int Factor, ElementCount LeafValueEC)

    Return a pair of

    (1) The corresponded deinterleaved mask, or nullptr if there is no valid

    mask.

    (2) Some mask effectively skips a certain field, and this element is a mask

    in which inactive lanes represent fields that are skipped (i.e. "gaps").

    Defined at line 588 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp

  • template <typename MB>
    ErrorOr<std::unique_ptr<MB>> getOpenFileImpl (sys::fs::file_t FD, const Twine & Filename, uint64_t FileSize, uint64_t MapSize, int64_t Offset, bool RequiresNullTerminator, bool IsVolatile, optional Alignment)

    Defined at line 484 of file llvm/lib/Support/MemoryBuffer.cpp

  • int compileModule (char ** argv, SmallVectorImpl<PassPlugin> & , LLVMContext & Context, std::string & OutputFilename)

    Defined at line 500 of file llvm/tools/llc/llc.cpp

  • void FactorNodes (int & InputMatcherPtr)

    Search a ScopeMatcher to factor with FactorScope.

    Defined at line 615 of file llvm/utils/TableGen/DAGISelMatcherOpt.cpp

  • lto_bool_t lto_module_has_ctor_dtor (lto_module_t mod)

    This function can be used by the linker to check if a given module has

    any constructor or destructor functions.

    Returns true if the module has either the

    .global_ctors or the

    .global_dtors symbol. Otherwise returns false.

    Defined at line 548 of file llvm/tools/lto/lto.cpp

  • Value * findBaseDefiningValue (Value * I, int & Cache, int & KnownBases)

    Helper function for findBasePointer - Will return a value which either a)

    defines the base pointer for the input, b) blocks the simple search

    (i.e. a PHI or Select of two derived pointers), or c) involves a change

    from pointer to vector type or back.

    Defined at line 449 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • lto_bool_t lto_codegen_add_module (lto_code_gen_t cg, lto_module_t mod)

    Add an object module to the set of modules for which code will be generated.

    Returns true on error (check lto_get_error_message() for details).

    and

    must both be in the same context. See

    and

    Defined at line 411 of file llvm/tools/lto/lto.cpp

  • void lto_codegen_set_module (lto_code_gen_t cg, lto_module_t mod)

    Sets the object module for code generation. This will transfer the ownership

    of the module to the code generator.

    and

    must both be in the same context.

    Defined at line 415 of file llvm/tools/lto/lto.cpp

  • lto_bool_t lto_codegen_set_debug_model (lto_code_gen_t cg,  )

    Sets if debug info should be generated.

    Returns true on error (check lto_get_error_message() for details).

    Defined at line 419 of file llvm/tools/lto/lto.cpp

  • void LLVMOrcExecutionSessionSetErrorReporter (LLVMOrcExecutionSessionRef ES, LLVMOrcErrorReporterFunction ReportError, void * Ctx)

    Attach a custom error reporter function to the ExecutionSession.

    The error reporter will be called to deliver failure notices that can not be

    directly reported to a caller. For example, failure to resolve symbols in

    the JIT linker is typically reported via the error reporter (callers

    requesting definitions from the JIT will typically be delivered a

    FailureToMaterialize error instead).

    Defined at line 318 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcSymbolStringPoolRef LLVMOrcExecutionSessionGetSymbolStringPool (LLVMOrcExecutionSessionRef ES)

    Return a reference to the SymbolStringPool for an ExecutionSession.

    Ownership of the pool remains with the ExecutionSession: The caller is

    not required to free the pool.

    Defined at line 325 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcSymbolStringPoolClearDeadEntries (LLVMOrcSymbolStringPoolRef SSP)

    Clear all unreferenced symbol string pool entries.

    This can be called at any time to release unused entries in the

    ExecutionSession's string pool. Since it locks the pool (preventing

    interning of any new strings) it is recommended that it only be called

    infrequently, ideally when the caller has reason to believe that some

    entries will have become unreferenced, e.g. after removing a module or

    closing a JITDylib.

    Defined at line 331 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcSymbolStringPoolEntryRef LLVMOrcExecutionSessionIntern (LLVMOrcExecutionSessionRef ES, const char * Name)

    Intern a string in the ExecutionSession's SymbolStringPool and return a

    reference to it. This increments the ref-count of the pool entry, and the

    returned value should be released once the client is done with it by

    calling LLVMOrcReleaseSymbolStringPoolEntry.

    Since strings are uniqued within the SymbolStringPool

    LLVMOrcSymbolStringPoolEntryRefs can be compared by value to test string

    equality.

    Note that this function does not perform linker-mangling on the string.

    Defined at line 335 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcExecutionSessionLookup (LLVMOrcExecutionSessionRef ES,  K, LLVMOrcCJITDylibSearchOrder SearchOrder, size_t SearchOrderSize, LLVMOrcCLookupSet Symbols, size_t SymbolsSize, LLVMOrcExecutionSessionLookupHandleResultFunction HandleResult, void * Ctx)

    Look up symbols in an execution session.

    This is a wrapper around the general ExecutionSession::lookup function.

    The SearchOrder argument contains a list of (JITDylibs, JITDylibSearchFlags)

    pairs that describe the search order. The JITDylibs will be searched in the

    given order to try to find the symbols in the Symbols argument.

    The Symbols argument should contain a null-terminated array of

    (SymbolStringPtr, SymbolLookupFlags) pairs describing the symbols to be

    searched for. This function takes ownership of the elements of the Symbols

    array. The Name fields of the Symbols elements are taken to have been

    retained by the client for this function. The client should *not* release the

    Name fields, but are still responsible for destroying the array itself.

    The HandleResult function will be called once all searched for symbols have

    been found, or an error occurs. The HandleResult function will be passed an

    LLVMErrorRef indicating success or failure, and (on success) a

    null-terminated LLVMOrcCSymbolMapPairs array containing the function result,

    and the Ctx value passed to the lookup function.

    The client is fully responsible for managing the lifetime of the Ctx object.

    A common idiom is to allocate the context prior to the lookup and deallocate

    it in the handler.

    THIS API IS EXPERIMENTAL AND LIKELY TO CHANGE IN THE NEAR FUTURE!

    Defined at line 340 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcRetainSymbolStringPoolEntry (LLVMOrcSymbolStringPoolEntryRef S)

    Increments the ref-count for a SymbolStringPool entry.

    Defined at line 376 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcReleaseSymbolStringPoolEntry (LLVMOrcSymbolStringPoolEntryRef S)

    Reduces the ref-count for of a SymbolStringPool entry.

    Defined at line 380 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • const char * LLVMOrcSymbolStringPoolEntryStr (LLVMOrcSymbolStringPoolEntryRef S)

    Return the c-string for the given symbol. This string will remain valid until

    the entry is freed (once all LLVMOrcSymbolStringPoolEntryRefs have been

    released).

    Defined at line 384 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcReleaseResourceTracker (LLVMOrcResourceTrackerRef RT)

    Reduces the ref-count of a ResourceTracker.

    Defined at line 403 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcResourceTrackerTransferTo (LLVMOrcResourceTrackerRef SrcRT, LLVMOrcResourceTrackerRef DstRT)

    Transfers tracking of all resources associated with resource tracker SrcRT

    to resource tracker DstRT.

    Defined at line 408 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMErrorRef LLVMOrcResourceTrackerRemove (LLVMOrcResourceTrackerRef RT)

    Remove all resources associated with the given tracker. See

    ResourceTracker::remove().

    Defined at line 414 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcDisposeDefinitionGenerator (LLVMOrcDefinitionGeneratorRef DG)

    Dispose of a JITDylib::DefinitionGenerator. This should only be called if

    ownership has not been passed to a JITDylib (e.g. because some error

    prevented the client from calling LLVMOrcJITDylibAddGenerator).

    Defined at line 419 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • char * LLVMGetDiagInfoDescription (LLVMDiagnosticInfoRef DI)

    Return a string representation of the DiagnosticInfo. Use

    LLVMDisposeMessage to free the string.

    Defined at line 246 of file llvm/lib/IR/Core.cpp

  •  LLVMGetDiagInfoSeverity (LLVMDiagnosticInfoRef DI)

    Return an enum LLVMDiagnosticSeverity.

    Defined at line 257 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetEnumAttributeKind (LLVMAttributeRef A)

    Get the unique id corresponding to the enum attribute

    passed as argument.

    Defined at line 175 of file llvm/lib/IR/Core.cpp

  • uint64_t LLVMGetEnumAttributeValue (LLVMAttributeRef A)

    Get the enum attribute's value. 0 is returned if none exists.

    Defined at line 179 of file llvm/lib/IR/Core.cpp

  • LLVMAttributeRef LLVMCreateTypeAttribute (LLVMContextRef C, unsigned int KindID, LLVMTypeRef type_ref)

    Create a type attribute

    Defined at line 186 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMGetTypeAttributeValue (LLVMAttributeRef A)

    Get the type attribute's value.

    Defined at line 193 of file llvm/lib/IR/Core.cpp

  • LLVMAttributeRef LLVMCreateConstantRangeAttribute (LLVMContextRef C, unsigned int KindID, unsigned int NumBits, const uint64_t[] LowerWords, const uint64_t[] UpperWords)

    Create a ConstantRange attribute.

    LowerWords and UpperWords need to be NumBits divided by 64 rounded up

    elements long.

    Defined at line 198 of file llvm/lib/IR/Core.cpp

  • LLVMAttributeRef LLVMCreateStringAttribute (LLVMContextRef C, const char * K, unsigned int KLength, const char * V, unsigned int VLength)

    Create a string attribute.

    Defined at line 212 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetStringAttributeKind (LLVMAttributeRef A, unsigned int * Length)

    Get the string attribute's kind.

    Defined at line 219 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetStringAttributeValue (LLVMAttributeRef A, unsigned int * Length)

    Get the string attribute's value.

    Defined at line 226 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsEnumAttribute (LLVMAttributeRef A)

    Check for the different types of attributes.

    Defined at line 233 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsStringAttribute (LLVMAttributeRef A)

    Defined at line 238 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsTypeAttribute (LLVMAttributeRef A)

    Defined at line 242 of file llvm/lib/IR/Core.cpp

  • LLVMModuleRef LLVMModuleCreateWithName (const char * ModuleID)

    Create a new, empty module in the global context.

    This is equivalent to calling LLVMModuleCreateWithNameInContext with

    LLVMGetGlobalContext() as the context parameter.

    Every invocation should be paired with LLVMDisposeModule() or memory

    will be leaked.

    Defined at line 280 of file llvm/lib/IR/Core.cpp

  • LLVMModuleRef LLVMModuleCreateWithNameInContext (const char * ModuleID, LLVMContextRef C)

    Create a new, empty module in a specific context.

    Every invocation should be paired with LLVMDisposeModule() or memory

    will be leaked.

    Defined at line 284 of file llvm/lib/IR/Core.cpp

  • LLVMModuleRef LLVMCloneModule (LLVMModuleRef M)

    Return an exact copy of the specified module.

    Defined at line 220 of file llvm/lib/Transforms/Utils/CloneModule.cpp

  • void LLVMDisposeModule (LLVMModuleRef M)

    Destroy a module instance.

    This must be called for every created module or memory will be

    leaked.

    Defined at line 289 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetModuleIdentifier (LLVMModuleRef M, size_t * Len)

    Obtain the identifier of a module.

    Parameters

    M Module to obtain identifier of
    Len Out parameter which holds the length of the returned string.

    Returns

    The identifier of M.

    Defined at line 293 of file llvm/lib/IR/Core.cpp

  • void LLVMSetModuleIdentifier (LLVMModuleRef M, const char * Ident, size_t Len)

    Set the identifier of a module to a string Ident with length Len.

    Parameters

    M The module to set identifier
    Ident The string to set M's identifier to
    Len Length of Ident

    Defined at line 299 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetSourceFileName (LLVMModuleRef M, size_t * Len)

    Obtain the module's original source file name.

    Parameters

    M Module to obtain the name of
    Len Out parameter which holds the length of the returned string

    Returns

    The original source file name of M

    Defined at line 303 of file llvm/lib/IR/Core.cpp

  • void LLVMSetSourceFileName (LLVMModuleRef M, const char * Name, size_t Len)

    Set the original source file name of a module to a string Name with length

    Len.

    Parameters

    M The module to set the source file name of
    Name The string to set M's source file name to
    Len Length of Name

    Defined at line 309 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetDataLayoutStr (LLVMModuleRef M)

    Obtain the data layout for a module.

    LLVMGetDataLayout is DEPRECATED, as the name is not only incorrect,

    but match the name of another method on the module. Prefer the use

    of LLVMGetDataLayoutStr, which is not ambiguous.

    Defined at line 314 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetDataLayout (LLVMModuleRef M)

    Defined at line 318 of file llvm/lib/IR/Core.cpp

  • void LLVMSetDataLayout (LLVMModuleRef M, const char * DataLayoutStr)

    Set the data layout for a module.

    Defined at line 322 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetTarget (LLVMModuleRef M)

    Obtain the target triple for a module.

    Defined at line 327 of file llvm/lib/IR/Core.cpp

  • void LLVMSetTarget (LLVMModuleRef M, const char * Triple)

    Set the target triple for a module.

    Defined at line 331 of file llvm/lib/IR/Core.cpp

  • LLVMModuleFlagEntry * LLVMCopyModuleFlagsMetadata (LLVMModuleRef M, size_t * Len)

    Returns the module flags as an array of flag-key-value triples. The caller

    is responsible for freeing this array by calling

    Defined at line 382 of file llvm/lib/IR/Core.cpp

  • void LLVMDisposeModuleFlagsMetadata (LLVMModuleFlagEntry * Entries)

    Destroys module flags metadata entries.

    Defined at line 399 of file llvm/lib/IR/Core.cpp

  •  LLVMModuleFlagEntriesGetFlagBehavior (LLVMModuleFlagEntry * Entries, unsigned int Index)

    Returns the flag behavior for a module flag entry at a specific index.

    Defined at line 403 of file llvm/lib/IR/Core.cpp

  • const char * LLVMModuleFlagEntriesGetKey (LLVMModuleFlagEntry * Entries, unsigned int Index, size_t * Len)

    Returns the key for a module flag entry at a specific index.

    Defined at line 411 of file llvm/lib/IR/Core.cpp

  • LLVMMetadataRef LLVMModuleFlagEntriesGetMetadata (LLVMModuleFlagEntry * Entries, unsigned int Index)

    Returns the metadata for a module flag entry at a specific index.

    Defined at line 419 of file llvm/lib/IR/Core.cpp

  • LLVMOrcResourceTrackerRef LLVMOrcJITDylibCreateResourceTracker (LLVMOrcJITDylibRef JD)

    Return a reference to a newly created resource tracker associated with JD.

    The tracker is returned with an initial ref-count of 1, and must be released

    with LLVMOrcReleaseResourceTracker when no longer needed.

    Defined at line 388 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcResourceTrackerRef LLVMOrcJITDylibGetDefaultResourceTracker (LLVMOrcJITDylibRef JD)

    Return a reference to the default resource tracker for the given JITDylib.

    This operation will increase the retain count of the tracker: Clients should

    call LLVMOrcReleaseResourceTracker when the result is no longer needed.

    Defined at line 396 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • const LiveInterval::SubRange & getSubRangeForMask (LaneBitmask LM, const LiveInterval & LI)

    Find a subrange corresponding to the lane mask

    or a superset of it,

    in the live interval

    The interval

    is assumed to contain such

    a subrange. This function is used to find corresponding subranges between

    the original interval and the new intervals.

    Defined at line 419 of file llvm/lib/CodeGen/SplitKit.cpp

  • void addPredecessorToBlock (BasicBlock * Succ, BasicBlock * NewPred, BasicBlock * ExistPred, MemorySSAUpdater * MSSAU)

    Update PHI nodes in Succ to indicate that there will now be entries in it

    from the 'NewPred' block. The values that will be flowing into the PHI nodes

    will be the same as those coming in from ExistPred, an existing predecessor

    of Succ.

    Defined at line 419 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool removeInf (APFloat & Lower, APFloat & Upper, bool & HasPosInf, bool & HasNegInf)

    Return true if the finite part is not empty after removing infinities.

    Defined at line 419 of file llvm/lib/IR/ConstantFPRange.cpp

  • void generateGetKind (ArrayRef Records, raw_ostream & OS, StringRef Enum, const DirectiveLanguage & DirLang, StringRef Prefix, bool ImplicitAsUnknown)

    Generate function implementation for get

    <Enum

    >KindAndVersions(StringRef Str)

    Defined at line 419 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • LinearExpression GetLinearExpression (const CastedValue & Val, const DataLayout & DL, unsigned int Depth, AssumptionCache * AC, DominatorTree * DT)

    Analyzes the specified value as a linear expression: "A*V + B", where A and

    B are constant integers.

    Defined at line 419 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • int main (int argc, char ** argv, char *const * envp)

    ===----------------------------------------------------------------------===//

    main Driver function

    Defined at line 419 of file llvm/tools/lli/lli.cpp

  • bool compressAnnotation (BinaryAnnotationsOpCode Annotation, SmallVectorImpl<char> & Buffer)

    Defined at line 420 of file llvm/lib/MC/MCCodeView.cpp

  • uint64_t getSegmentFileSize (const LoadCommand & TextSegmentLoadCommand)

    Defined at line 420 of file llvm/lib/ObjCopy/MachO/MachOWriter.cpp

  • bool isReachableFromPHI (PHINode * Phi, BinaryOperator * BO)

    See if this BO is reachable from this Phi by walking forward through single

    use BinaryOperators with the same opcode. If we get back then we know we've

    found a loop and it is safe to step through this Add to find more leaves.

    Defined at line 420 of file llvm/lib/Target/X86/X86PartialReduction.cpp

  • LaneBitmask getLanesWithProperty (const LiveIntervals & LIS, const MachineRegisterInfo & MRI, bool TrackLaneMasks, VirtRegOrUnit VRegOrUnit, SlotIndex Pos, LaneBitmask SafeDefault, bool (*)(const LiveRange &, SlotIndex) Property)

    Defined at line 420 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • bool memoryIsNotModifiedBetween (Instruction * FirstI, Instruction * SecondI, BatchAAResults & AA, const DataLayout & DL, DominatorTree * DT)

    Returns true if the memory which is accessed by the second instruction is not

    modified between the first and the second instruction.

    Precondition: Second instruction must be dominated by the first

    instruction.

    Defined at line 420 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • void initializeDetectDeadLanesLegacyPassOnce (PassRegistry & Registry)

    Defined at line 421 of file llvm/lib/CodeGen/DetectDeadLanes.cpp

  • bool isNonTrivial (const DICompositeType * DCTy)

    Defined at line 421 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • bool isLTOPreLink (ThinOrFullLTOPhase Phase)

    Helper to check if the current compilation phase is preparing for LTO

    Defined at line 421 of file llvm/lib/Passes/PassBuilderPipelines.cpp

  • Error isValidMachOCannonicalName (StringRef Name)

    isValidMachOCannonicalName returns success if Name is a MachO cannonical name

    ("<segment>,<section>") and lengths of both segment and section names are

    valid.

    Defined at line 421 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • Constant * getMemSetPatternValue (Value * V, const DataLayout * DL)

    getMemSetPatternValue - If a strided store of the specified value is safe to

    turn into a memset.patternn intrinsic, return the Constant that should

    be passed in. Otherwise, return null.

    TODO this function could allow more constants than it does today (e.g.

    those over 16 bytes) now it has transitioned to being used for the

    memset.pattern intrinsic rather than directly the memset_pattern16

    libcall.

    Defined at line 421 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • ElementCount getSmallConstantTripCount (ScalarEvolution * SE, const Loop * L)

    A version of ScalarEvolution::getSmallConstantTripCount that returns an

    ElementCount to include loops whose trip count is a function of vscale.

    Defined at line 422 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • unsigned int peelToTurnInvariantLoadsDereferenceable (Loop & L, DominatorTree & DT, AssumptionCache * AC)

    Try to find any invariant memory reads that will become dereferenceable in

    the remainder loop after peeling. The load must also be used (transitively)

    by an exit condition. Returns the number of iterations to peel off (at the

    moment either 0 or 1).

    Defined at line 422 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • void LLVMOrcDisposeMaterializationUnit (LLVMOrcMaterializationUnitRef MU)

    Dispose of a MaterializationUnit.

    Defined at line 423 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool canHaveUnrollRemainder (const Loop * L)

    Loops containing convergent instructions that are uncontrolled or controlled

    from outside the loop must have a count that divides their TripMultiple.

    Defined at line 423 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp

  • bool isMoveInstr (const TargetRegisterInfo & tri, const MachineInstr * MI, Register & Src, Register & Dst, unsigned int & SrcSub, unsigned int & DstSub)

    Defined at line 423 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • bool isComputableLoopNest (ScalarEvolution * SE, ArrayRef LoopList)

    Defined at line 423 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • bool tryToUnrollAndJamLoop (LoopNest & LN, DominatorTree & DT, LoopInfo & LI, ScalarEvolution & SE, const TargetTransformInfo & TTI, AssumptionCache & AC, DependenceInfo & DI, OptimizationRemarkEmitter & ORE, int OptLevel, LPMUpdater & U, bool & AnyLoopRemoved)

    Defined at line 423 of file llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp

  • void rewritePHINodesForExitAndUnswitchedBlocks (BasicBlock & ExitBB, BasicBlock & UnswitchedBB, BasicBlock & OldExitingBB, BasicBlock & OldPH, bool FullUnswitch)

    Rewrite the PHI nodes in the loop exit basic block and the split off

    unswitched block.

    Because the exit block remains an exit from the loop, this rewrites the

    LCSSA PHI nodes in it to remove the unswitched edge and introduces PHI

    nodes into the unswitched basic block to select between the value in the

    old preheader and the loop exit.

    Defined at line 423 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • MCAsmInfo * createX86MCAsmInfo (const MCRegisterInfo & MRI, const Triple & TheTriple, const MCTargetOptions & Options)

    Defined at line 423 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp

  • void lowerIncomingStatepointValue (SDValue Incoming, bool RequireSpillSlot, SmallVectorImpl<SDValue> & Ops, SmallVectorImpl<MachineMemOperand *> & MemRefs, SelectionDAGBuilder & Builder)

    Lower a single value incoming to a statepoint node. This value can be

    either a deopt value or a gc value, the handling is the same. We special

    case constants and allocas, then fall back to spilling if required.

    Defined at line 423 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • void initializeStructurizeCFGLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 424 of file llvm/lib/Transforms/Scalar/StructurizeCFG.cpp

  • lto_bool_t lto_codegen_set_pic_model (lto_code_gen_t cg,  )

    Sets which PIC code model to generated.

    Returns true on error (check lto_get_error_message() for details).

    Defined at line 424 of file llvm/tools/lto/lto.cpp

  • MDNode * updateLoopMetadataDebugLocationsImpl (MDNode * OrigLoopID, function_ref Updater)

    Defined at line 424 of file llvm/lib/IR/DebugInfo.cpp

  • uint32_t encodeSignedNumber (uint32_t Data)

    Defined at line 425 of file llvm/lib/MC/MCCodeView.cpp

  • template <typename T>
    void printSingleVal (basic_string Indent, const DiffOutput & Attr, raw_ostream & OS)

    Defined at line 425 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • void createLoopRegion (VPlan & Plan, VPBlockBase * HeaderVPB)

    Create a new VPRegionBlock for the loop starting at

    Defined at line 425 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • FunctionOptions getFunctionOptions (const DISubroutineType * Ty, const DICompositeType * ClassTy, StringRef SPName)

    Defined at line 425 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void printHelp (const opt::OptTable & OptTable, raw_ostream & OS, ToolType Tool)

    Defined at line 425 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • void canonicalizeToIntegerIV (Loop * L, PHINode * PN, const FloatingPointIV & FPIV, const IntegerIV & IIV, const TargetLibraryInfo * TLI, int & MSSAU)

    Rewrite the floating-point IV as an integer IV.

    Defined at line 425 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • void initializeDominatorTreeWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 426 of file llvm/lib/IR/Dominators.cpp

  • LLVMMetadataRef LLVMGetModuleFlag (LLVMModuleRef M, const char * Key, size_t KeyLen)

    Add a module-level flag to the module-level flags metadata if it doesn't

    already exist.

    Defined at line 426 of file llvm/lib/IR/Core.cpp

  • optional isBigEndianBitShift (Value * V, ScalarEvolution & SE)

    Recognizes a multiplication or division by the constant two, using SCEV. By

    doing this, we're immune to whether the IR expression is mul/udiv or

    equivalently shl/lshr. Return false when it is a UDiv, true when it is a Mul,

    and std::nullopt otherwise.

    Defined at line 426 of file llvm/lib/Analysis/HashRecognize.cpp

  • vector computeAddrMap (ArrayRef Publics)

    Defined at line 426 of file llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp

  • bool filterByName (const StringSet<> & Names, DWARFDie Die, StringRef NameRef, raw_ostream & OS, function GetNameForDWARFReg)

    Print only DIEs that have a certain name.

    Defined at line 426 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • ErrorOr getReadWriteFile (const Twine & Filename, uint64_t FileSize, uint64_t MapSize, uint64_t Offset)

    Defined at line 426 of file llvm/lib/Support/MemoryBuffer.cpp

  • int ProcessThinLTOModule (Module & TheModule, ModuleSummaryIndex & Index, int & ModuleMap, TargetMachine & TM, const FunctionImporter::ImportMapTy & ImportList, const int & ExportList, const int & GUIDPreservedSymbols, const GVSummaryMapTy & DefinedGlobals, const ThinLTOCodeGenerator::CachingOptions & CacheOptions, bool DisableCodeGen, StringRef SaveTempsDir, bool Freestanding, unsigned int OptLevel, unsigned int count, bool DebugPassManager)

    Defined at line 426 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • unsigned int getJumpThreadDuplicationCost (const TargetTransformInfo * TTI, BasicBlock * BB, Instruction * StopAt, unsigned int Threshold)

    Return the cost of duplicating a piece of this block from first non-phi

    and before StopAt instruction to thread across it. Stop scanning the block

    when exceeding the threshold. If duplication is impossible, returns ~0U.

    Defined at line 426 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • void printSize (raw_ostream & OS, double Bits)

    Defined at line 427 of file llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp

  • bool isLTOPostLink (ThinOrFullLTOPhase Phase)

    Helper to check if the current compilation phase is LTO backend

    Defined at line 427 of file llvm/lib/Passes/PassBuilderPipelines.cpp

  • Cursor maybeLexStringConstant (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 427 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void dumpIR (Function & F, const char * Label, CHRStats * Stats)

    Defined at line 427 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • LLVMOrcMaterializationUnitRef LLVMOrcCreateCustomMaterializationUnit (const char * Name, void * Ctx, LLVMOrcCSymbolFlagsMapPairs Syms, size_t NumSyms, LLVMOrcSymbolStringPoolEntryRef InitSym, LLVMOrcMaterializationUnitMaterializeFunction Materialize, LLVMOrcMaterializationUnitDiscardFunction Discard, LLVMOrcMaterializationUnitDestroyFunction Destroy)

    Create a custom MaterializationUnit.

    Name is a name for this MaterializationUnit to be used for identification

    and logging purposes (e.g. if this MaterializationUnit produces an

    object buffer then the name of that buffer will be derived from this name).

    The Syms list contains the names and linkages of the symbols provided by this

    unit. This function takes ownership of the elements of the Syms array. The

    Name fields of the array elements are taken to have been retained for this

    function. The client should *not* release the elements of the array, but is

    still responsible for destroying the array itself.

    The InitSym argument indicates whether or not this MaterializationUnit

    contains static initializers. If three are no static initializers (the common

    case) then this argument should be null. If there are static initializers

    then InitSym should be set to a unique name that also appears in the Syms

    list with the LLVMJITSymbolGenericFlagsMaterializationSideEffectsOnly flag

    set. This function takes ownership of the InitSym, which should have been

    retained twice on behalf of this function: once for the Syms entry and once

    for InitSym. If clients wish to use the InitSym value after this function

    returns they must retain it once more for themselves.

    If any of the symbols in the Syms list is looked up then the Materialize

    function will be called.

    If any of the symbols in the Syms list is overridden then the Discard

    function will be called.

    The caller owns the underling MaterializationUnit and is responsible for

    either passing it to a JITDylib (via LLVMOrcJITDylibDefine) or disposing

    of it by calling LLVMOrcDisposeMaterializationUnit.

    Defined at line 427 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool isTileRegDef (MachineRegisterInfo * MRI, MachineInstr & MI)

    Defined at line 428 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp

  • DINameKind decideHowToPrintFunctions (const opt::InputArgList & Args, bool IsAddr2Line)

    Defined at line 428 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • uint64_t computeECSymbolsSize (SymMap & SymMap, uint32_t * Padding)

    Defined at line 428 of file llvm/lib/Object/ArchiveWriter.cpp

  • template <typename T, T TrueVal, T FalseVal>
    bool parseBool (Option & O, StringRef ArgName, StringRef Arg, T & Value)

    Defined at line 428 of file llvm/lib/Support/CommandLine.cpp

  • bool isEligibleForMerging (Function & F)

    Check whether

    is eligible for function merging.

    Defined at line 429 of file llvm/lib/Transforms/IPO/MergeFunctions.cpp

  • bool indexReallyValid (Type * T, unsigned int Idx)

    For an aggregate type, determine whether a given index is within bounds or

    not.

    Defined at line 429 of file llvm/lib/CodeGen/Analysis.cpp

  • bool InstructionStoresToFI (const MachineInstr * MI, int FI)

    Return true if instruction stores to the specified frame.

    Defined at line 429 of file llvm/lib/CodeGen/MachineLICM.cpp

  • void printSize (raw_ostream & OS, uint64_t Bits)

    Defined at line 430 of file llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp

  • void initializeCFGSimplifyPassPassOnce (PassRegistry & Registry)

    Defined at line 430 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  • void collectBlocksReachableByDirty (const int & DirtyBBs, int & ReachableByDirty)

    Collect blocks reachable by use or def of CSRs/FI.

    Defined at line 430 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • void outputJSONForAllDiffs (StringRef InputFileNameA, StringRef InputFileNameB, const DiffsCategorizedByFilesPresent & DiffsByFilesPresent, llvm::raw_ostream & OS)

    Output all diffs in

    as a JSON report. This is

    intended for consumption by external tools.

    - File A used to produce the report.

    - File B used ot produce the report.

    - Output stream.

    JSON output includes:

    -

    and

    under "Files".

    - Functions present in both files under "InBoth".

    - Functions present only in A in "OnlyInA".

    - Functions present only in B in "OnlyInB".

    - Instruction count and stack size differences for each function.

    Differences are represented using [count_a, count_b]. The actual difference

    can be computed via count_b - count_a.

    Defined at line 430 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • void dumpSectionContrib (LinePrinter & P, const SectionContrib & SC, ArrayRef SectionNames, uint32_t FieldWidth)

    Defined at line 430 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • GenericValue executeFCMP_ONE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 430 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • bool mustBeUnreachableFunction (ValueInfo TheFnVI)

    Returns true if the function must be unreachable based on ValueInfo.

    In particular, identifies a function as unreachable in the following

    conditions

    1) All summaries are live.

    2) All function summaries indicate it's unreachable

    3) There is no non-function with the same GUID (which is rare)

    Defined at line 430 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • bool isValInBlock (const Value * V, const BasicBlock * BB)

    Defined at line 431 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • void LLVMAddModuleFlag (LLVMModuleRef M,  Behavior, const char * Key, size_t KeyLen, LLVMMetadataRef Val)

    Add a module-level flag to the module-level flags metadata if it doesn't

    already exist.

    Defined at line 431 of file llvm/lib/IR/Core.cpp

  • void hasher_merge_cv_stack (llvm_blake3_hasher * self, uint64_t total_len)

    As described in hasher_push_cv() below, we do "lazy merging", delaying

    merges until right before the next CV is about to be added. This is

    different from the reference implementation. Another difference is that we

    aren't always merging 1 chunk at a time. Instead, each CV might represent

    any power-of-two number of chunks, as long as the smaller-above-larger stack

    order is maintained. Instead of the "count the trailing 0-bits" algorithm

    described in the spec, we use a "count the total number of 1-bits" variant

    that doesn't require us to retain the subtree size of the CV on top of the

    stack. The principle is the same: each CV that should remain in the stack is

    represented by a 1-bit in the total number of chunks (or bytes) so far.

    Defined at line 431 of file llvm/lib/Support/BLAKE3/blake3.c

  • ArchType parseBPFArch (StringRef ArchName)

    Defined at line 431 of file llvm/lib/TargetParser/Triple.cpp

  • bool isConstant (Value * V)

    Defined at line 432 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool areContiguous (const BCECmpBlock & First, const BCECmpBlock & Second)

    Defined at line 432 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • MemoryEffectsBase getEffectiveME (const CodeGenIntrinsic & Int)

    Returns the effective MemoryEffects for intrinsic

    Defined at line 432 of file llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp

  • template <typename T>
    const T * findInfo (const DenseMap<uint64_t, SmallVector<T, 0>> & SecMap, SectionedAddress Address)

    Defined at line 432 of file llvm/lib/DebugInfo/BTF/BTFParser.cpp

  • bool CheckForLiveRegDef (SUnit * SU, MCRegister Reg, int & LiveRegDefs, int & RegAdded, SmallVectorImpl<unsigned int> & LRegs, const TargetRegisterInfo * TRI, const SDNode * Node)

    CheckForLiveRegDef - Return true and update live register vector if the

    specified register def of the specified SUnit clobbers any "live" registers.

    Defined at line 432 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp

  • bool isBlockInLCSSAForm (const Loop & L, const BasicBlock & BB, const DominatorTree & DT, bool IgnoreTokens)

    Check that 'BB' doesn't have any uses outside of the 'L'

    Defined at line 432 of file llvm/lib/Analysis/LoopInfo.cpp

  • InstructionCost computeSpeculationCost (const User * I, const TargetTransformInfo & TTI)

    Compute an abstract "cost" of speculating the given instruction,

    which is assumed to be safe to speculate. TCC_Free means cheap,

    TCC_Basic means less cheap, and TCC_Expensive means prohibitively

    expensive.

    Defined at line 433 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void createShuffleStride (MVT VT, int Stride, SmallVectorImpl<int> & Mask)

    createShuffleStride returns shuffle mask of size N.

    The shuffle pattern is as following :

    {0, Stride%(VF/Lane), (2*Stride%(VF/Lane))...(VF*Stride/Lane)%(VF/Lane),

    (VF/ Lane) ,(VF / Lane)+Stride%(VF/Lane),...,

    (VF / Lane)+(VF*Stride/Lane)%(VF/Lane)}

    Where Lane is the # of lanes in a register:

    VectorSize = 128 => Lane = 1

    VectorSize = 256 => Lane = 2

    For example shuffle pattern for VF 16 register size 256 -> lanes = 2

    {

    <

    [0|3|6|1|4|7|2|5]-[8|11|14|9|12|15|10|13]>}

    Defined at line 433 of file llvm/lib/Target/X86/X86InterleavedAccess.cpp

  • CoroConditionalWrapper buildCoroWrapper (ThinOrFullLTOPhase Phase)

    Helper to wrap conditionally Coro passes.

    Defined at line 433 of file llvm/lib/Passes/PassBuilderPipelines.cpp

  • void DisableAllLoopOptsOnLoop (Loop & L)

    Add metadata to the loop L to disable loop optimizations. Callers need to

    confirm that optimizing loop L is not beneficial.

    Defined at line 433 of file llvm/lib/Transforms/Utils/LoopConstrainer.cpp

  • Value * threadCmpOverSelect (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    In the case of a comparison with a select instruction, try to simplify the

    comparison by seeing whether both branches of the select result in the same

    value. Returns the common value if so, otherwise returns null.

    For example, if we have:

    %tmp = select i1 %cmp, i32 1, i32 2

    %cmp1 = icmp sle i32 %tmp, 3

    We can simplify %cmp1 to true, because both branches of select are

    less than 3. We compose new comparison by substituting %tmp with both

    branches of select and see if it can be simplified.

    Defined at line 433 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * simplifyX86pack (IntrinsicInst & II, InstCombiner::BuilderTy & Builder, bool IsSigned)

    Defined at line 433 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • Function * asPtr (Function * Fn)

    Defined at line 434 of file llvm/lib/Transforms/IPO/MergeFunctions.cpp

  • const Loop * PickMostRelevantLoop (const Loop * A, const Loop * B, DominatorTree & DT)

    PickMostRelevantLoop - Given two loops pick the one that's most relevant for

    SCEV expansion. If they are nested, this is the most nested. If they are

    neighboring, pick the later.

    Defined at line 434 of file llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp

  • const PassInfo * getPassInfo (StringRef PassName)

    Defined at line 434 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • template <typename T>
    void printTLSDirectoryT (const coff_tls_directory<T> * TLSDir)

    Defined at line 434 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • Function * asPtr (Function & Fn)

    Defined at line 435 of file llvm/lib/Transforms/IPO/MergeFunctions.cpp

  • FunctionType * getFunctionTypeFromAsyncSuspend (AnyCoroSuspendInst * Suspend)

    Defined at line 435 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • void debugAssign (const BlockFrequencyInfoImplBase & BFI, const DitheringDistributer & D, const BlockNode & T, const BlockMass & M, const char * Desc)

    Defined at line 435 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • Cursor lexVirtualRegister (Cursor C, MIToken & Token)

    Defined at line 435 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • bool formLCSSARecursivelyImpl (Loop & L, const DominatorTree & DT, const LoopInfo * LI, ScalarEvolution * SE, LoopExitBlocksTy & LoopExitBlocks)

    Process a loop nest depth first.

    Defined at line 435 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • void emitDXILIntrinsicMap (ArrayRef<DXILOperationDesc> Ops, raw_ostream & OS)

    Emit map of DXIL operation to LLVM or DirectX intrinsic

    Parameters

    A vector of DXIL Ops
    Output stream

    Defined at line 435 of file llvm/utils/TableGen/DXILEmitter.cpp

  • Expected ReadSignature (BitstreamCursor & Stream)

    Defined at line 435 of file llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp

  • void DWARFErrorHandler (Error Err)

    Defined at line 436 of file llvm/lib/TextAPI/BinaryReader/DylibReader.cpp

  • template <typename T>
    T * castValues (const std::unique_ptr<AttributeDiff> & RawAttr)

    Defined at line 436 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • void explainPdbStreamHeaderOffset (LinePrinter & P, InfoStream & Info, uint32_t Offset)

    Defined at line 436 of file llvm/tools/llvm-pdbutil/ExplainOutputStyle.cpp

  • void clobberRegisterUses (int & RegVars, int I, DbgValueHistoryMap & HistMap, int & LiveEntries, const MachineInstr & ClobberingInstr)

    Terminate the location range for variables described by register at

    by inserting

    to their history.

    Defined at line 436 of file llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp

  • basic_string computeNVPTXDataLayout (const Triple & T, StringRef ABIName)

    Defined at line 436 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • LoopDeletionResult deleteLoopIfDead (Loop * L, DominatorTree & DT, ScalarEvolution & SE, LoopInfo & LI, MemorySSA * MSSA, OptimizationRemarkEmitter & ORE)

    Remove a loop if it is dead.

    A loop is considered dead either if it does not impact the observable

    behavior of the program other than finite running time, or if it is

    required to make progress by an attribute such as 'mustprogress' or

    'llvm.loop.mustprogress' and does not make any. This may remove

    infinite loops that have been required to make progress.

    This entire process relies pretty heavily on LoopSimplify form and LCSSA in

    order to make various safety checks work.

    Defined at line 436 of file llvm/lib/Transforms/Scalar/LoopDeletion.cpp

  • bool removeRedundantDbgInstrsUsingBackwardScan (BasicBlock * BB)

    Remove redundant instructions within sequences of consecutive dbg.value

    instructions. This is done using a backward scan to keep the last dbg.value

    describing a specific variable/fragment.

    BackwardScan strategy:

    ----------------------

    Given a sequence of consecutive DbgValueInst like this

    dbg.value ..., "x", FragmentX1 (*)

    dbg.value ..., "y", FragmentY1

    dbg.value ..., "x", FragmentX2

    dbg.value ..., "x", FragmentX1 (**)

    then the instruction marked with (*) can be removed (it is guaranteed to be

    obsoleted by the instruction marked with (**) as the latter instruction is

    describing the same variable using the same fragment info).

    Possible improvements:

    - Check fully overlapping fragments and not only identical fragments.

    Defined at line 437 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • LLVMBool LLVMIsNewDbgInfoFormat (LLVMModuleRef M)

    Soon to be deprecated.

    See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

    Returns true if the module is in the new debug info mode which uses

    non-instruction debug records instead of debug intrinsics for variable

    location tracking.

    Defined at line 438 of file llvm/lib/IR/Core.cpp

  • bool handleStubifyAction (Context & Ctx)

    Defined at line 438 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • bool foldSqrt (CallInst * Call, LibFunc Func, TargetTransformInfo & TTI, TargetLibraryInfo & TLI, AssumptionCache & AC, DominatorTree & DT)

    Try to replace a mathlib call to sqrt with the LLVM intrinsic. This avoids

    pessimistic codegen that has to account for setting errno and can enable

    vectorization.

    Defined at line 438 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • StringMap accumulateLocs (MachOObjectFile & Obj, const std::unique_ptr<DWARFContext> & DiCtx)

    Defined at line 438 of file llvm/lib/TextAPI/BinaryReader/DylibReader.cpp

  • ConstantAsMetadata * getConstantOrNull (Constant * C)

    Defined at line 439 of file llvm/lib/IR/DIBuilder.cpp

  • unsigned int getMinOrigOrder (const int & Blocks)

    Defined at line 439 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • GenericValue lle_X_printf (FunctionType * FT, ArrayRef Args)

    int printf(const char *, ...) - a very rough implementation to make output

    useful.

    Defined at line 439 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • bool isVectorLikeInstWithConstOps (Value * V)

    Checks if

    is one of vector-like instructions, i.e. undef,

    insertelement/extractelement with constant indices for fixed vector type or

    extractvalue instruction.

    Defined at line 439 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • template <class ELFT>
    bool isInSegment (const ELFYAML::Section & Sec, const typename ELFT::Shdr & SHdr, const typename ELFT::Phdr & Phdr)

    Defined at line 439 of file llvm/tools/obj2yaml/elf2yaml.cpp

  • void collectLeaves (Value * Root, SmallVectorImpl<Instruction *> & Leaves)

    Collect all the leaves of the tree of adds that feeds into the horizontal

    reduction. Root is the Value that is used by the horizontal reduction.

    We look through single use phis, single use adds, or adds that are used by

    a phi that forms a loop with the add.

    Defined at line 439 of file llvm/lib/Target/X86/X86PartialReduction.cpp

  • void LLVMSetIsNewDbgInfoFormat (LLVMModuleRef M, LLVMBool UseNewFormat)

    Soon to be deprecated.

    See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

    Convert module into desired debug info format.

    Defined at line 440 of file llvm/lib/IR/Core.cpp

  • std::optional<bool> parseColorArg (const opt::InputArgList & Args)

    Defined at line 440 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • bool compareFnAttributes (const CodeGenIntrinsic * L, const CodeGenIntrinsic * R)

    Defined at line 440 of file llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp

  • Error handleArgs (const CommonConfig & Config, const MachOConfig & MachOConfig, Object & Obj)

    Defined at line 440 of file llvm/lib/ObjCopy/MachO/MachOObjcopy.cpp

  • bool allCallersPassValidPointerForArgument (Argument * Arg, SmallPtrSetImpl<CallBase *> & RecursiveCalls, Align NeededAlign, uint64_t NeededDerefBytes)

    Return true if we can prove that all callees pass in a valid pointer for the

    specified function argument.

    Defined at line 440 of file llvm/lib/Transforms/IPO/ArgumentPromotion.cpp

  • void initializeTargetInfo ()

    Defined at line 441 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • template <typename T>
    void sortTargetValues (std::vector<T> & TargValues)

    Defined at line 441 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • LLVMValueRef clone_inline_asm (LLVMValueRef Asm, LLVMModuleRef M)

    Defined at line 441 of file llvm/tools/llvm-c-test/echo.cpp

  • void initializePostMachineSchedulerLegacyPassOnce (PassRegistry & Registry)

    Defined at line 442 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • void printArchs (LLVMContext & LLVMCtx, ArrayRef<OwningBinary<Binary>> InputBinaries)

    Defined at line 442 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • void writeSymbolTableHeader (raw_ostream & Out, Kind Kind, bool Deterministic, uint64_t Size, uint64_t PrevMemberOffset, uint64_t NextMemberOffset)

    Defined at line 442 of file llvm/lib/Object/ArchiveWriter.cpp

  • MCFixupKind getImmFixupKind (uint64_t TSFlags)

    Defined at line 442 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

  • bool IsChainDependent (SDNode * Outer, SDNode * Inner, unsigned int NestLevel, const TargetInstrInfo * TII)

    IsChainDependent - Test if Outer is reachable from Inner through

    chain dependencies.

    Defined at line 442 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • Error handleBuffer (StringRef Filename, MemoryBufferRef Buffer, const std::string & OutFile, OutputAggregator & Out)

    Defined at line 442 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • void lto_codegen_set_cpu (lto_code_gen_t cg, const char * cpu)

    Sets the cpu to generate code for.

    Defined at line 443 of file llvm/tools/lto/lto.cpp

  • MaybeAlign getAlign (Value * Ptr)

    Defined at line 443 of file llvm/lib/IR/IRBuilder.cpp

  • bool isSaveReachableThroughClean (const MachineBasicBlock * SavePoint, ArrayRef<MachineBasicBlock *> CleanPreds)

    Returns

    true if there is a clean path from SavePoint to the original

    Restore.

    Defined at line 443 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • void emitOneV5FileEntry (MCStreamer * MCOS, const MCDwarfFile & DwarfFile, bool EmitMD5, bool HasAnySource, std::optional<MCDwarfLineStr> & LineStr)

    Defined at line 443 of file llvm/lib/MC/MCDwarf.cpp

  • bool checkFunctions (const DebugFnMap & DIFunctionsBefore, const DebugFnMap & DIFunctionsAfter, StringRef NameOfWrappedPass, StringRef FileNameFromCU, bool ShouldWriteIntoJSON, llvm::json::Array & Bugs)

    This checks the preservation of original debug info attached to functions.

    Defined at line 443 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • LLVMOrcMaterializationUnitRef LLVMOrcAbsoluteSymbols (LLVMOrcCSymbolMapPairs Syms, size_t NumPairs)

    Create a MaterializationUnit to define the given symbols as pointing to

    the corresponding raw addresses.

    This function takes ownership of the elements of the Syms array. The Name

    fields of the array elements are taken to have been retained for this

    function. This allows the following pattern...

    size_t NumPairs;

    LLVMOrcCSymbolMapPairs Sym;

    -- Build Syms array --

    LLVMOrcMaterializationUnitRef MU =

    LLVMOrcAbsoluteSymbols(Syms, NumPairs);

    ... without requiring cleanup of the elements of the Sym array afterwards.

    The client is still responsible for deleting the Sym array itself.

    If a client wishes to reuse elements of the Sym array after this call they

    must explicitly retain each of the elements for themselves.

    Defined at line 444 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • PredsWithCondsTy shouldSplitOnPHIPredicatedArgument (CallBase & CB)

    Check if any of the arguments in CS are predicated on a PHI node and return

    the set of predecessors we should use for splitting.

    Defined at line 444 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • Function * createCloneDeclaration (Function & OrigF, coro::Shape & Shape, const Twine & Suffix, ilist_iterator InsertBefore, AnyCoroSuspendInst * ActiveSuspend)

    Defined at line 444 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • void initializeRegAllocFastPassOnce (PassRegistry & Registry)

    Defined at line 445 of file llvm/lib/CodeGen/RegAllocFast.cpp

  • const char * getDarwinStabString (uint8_t NType)

    Defined at line 445 of file llvm/tools/dsymutil/MachODebugMapParser.cpp

  • void reverseValueUseLists (Value * V, DenseSet<Value *> & Seen)

    Defined at line 445 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • AnalysisID getPassIDFromName (StringRef PassName)

    Defined at line 446 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • bool modifiedTimeGT (StringRef LHS, StringRef RHS)

    Defined at line 446 of file llvm/tools/llvm-cov/CodeCoverage.cpp

  • size_t getHeaderSize (uint16_t Version)

    Helper method to get header size based on version.

    Defined at line 446 of file llvm/lib/Object/OffloadBundle.cpp

  • Instruction * simplifyInvariantGroupIntrinsic (IntrinsicInst & II, InstCombinerImpl & IC)

    This function transforms launder.invariant.group and strip.invariant.group

    like:

    launder(launder(%x)) -> launder(%x) (the result is not the argument)

    launder(strip(%x)) -> launder(%x)

    strip(strip(%x)) -> strip(%x) (the result is not the argument)

    strip(launder(%x)) -> strip(%x)

    This is legal because it preserves the most recent information about

    the presence or absence of invariant.group.

    Defined at line 446 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • optional generateLoopLatchCheck (const DataLayout & DL, ScalarEvolution & SE, LoopICmp LatchCheck, Type * RangeCheckType)

    Return an LoopICmp describing a latch check equivlent to LatchCheck but with

    the requested type if safe to do so. May involve the use of a new IV.

    Defined at line 446 of file llvm/lib/Transforms/Scalar/LoopPredication.cpp

  • GlobalVariable * createIRLevelProfileFlagVar (Module & M, PGOInstrumentationType InstrumentationType)

    Create a COMDAT variable INSTR_PROF_RAW_VERSION_VAR to make the runtime

    aware this is an ir_level profile so it can set the version flag.

    Defined at line 446 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • bool isRegisterChar (char C)

    Returns true for a character allowed in a register name.

    Defined at line 447 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void lto_codegen_set_assembler_path (lto_code_gen_t cg, const char * path)

    Sets the location of the assembler tool to run. If not set, libLTO

    will use gcc to invoke the assembler.

    Defined at line 447 of file llvm/tools/lto/lto.cpp

  • void setGroupSize (MVT VT, SmallVectorImpl<int> & SizeInfo)

    setGroupSize sets 'SizeInfo' to the size(number of elements) of group

    inside mask a shuffleMask. A mask contains exactly 3 groups, where

    each group is a monotonically increasing sequence with stride 3.

    For example shuffleMask {0,3,6,1,4,7,2,5} => {3,3,2}

    Defined at line 447 of file llvm/lib/Target/X86/X86InterleavedAccess.cpp

  • const MCExpr * GetSubDivExpr (MCStreamer & Streamer, const MCSymbol * LHS, const MCSymbol * RHS, int Div)

    Defined at line 447 of file llvm/lib/MC/MCWin64EH.cpp

  • unique_ptr ParseVarExpr ()

    varexpr ::= 'var' identifier ('=' expression)?

    (',' identifier ('=' expression)?)* 'in' expression

    Defined at line 447 of file llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp

  • bool isSplitEdge (const MachineBasicBlock * MBB)

    Return true if this block should be vacated by the coalescer to eliminate

    branches. The important cases to handle in the coalescer are critical edges

    split during phi elimination which contain only copies. Simple blocks that

    contain non-branches should also be vacated, but this can be handled by an

    earlier pass similar to early if-conversion.

    Defined at line 448 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • int mergeBlocks (int && Blocks)

    Given a chain of comparison blocks, groups the blocks into contiguous

    ranges that can be merged together into a single comparison.

    Defined at line 448 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • template <typename Iter, typename Pred, typename Less>
    Iter min_if (Iter B, Iter E, Pred P, Less L)

    Defined at line 449 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void printInfo (LLVMContext & LLVMCtx, ArrayRef<OwningBinary<Binary>> InputBinaries)

    Defined at line 449 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • basic_string linkageToString (LinkageTypes LT)

    Defined at line 449 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • LaneBitmask getLiveLanesAt (const LiveIntervals & LIS, const MachineRegisterInfo & MRI, bool TrackLaneMasks, VirtRegOrUnit VRegOrUnit, SlotIndex Pos)

    Defined at line 450 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • void dumpSectionContrib (LinePrinter & P, const SectionContrib2 & SC, ArrayRef SectionNames, uint32_t FieldWidth)

    Defined at line 450 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • void lto_codegen_set_assembler_args (lto_code_gen_t cg, const char ** args, int nargs)

    Sets extra arguments that libLTO should pass to the assembler.

    Defined at line 451 of file llvm/tools/lto/lto.cpp

  • void lto_codegen_add_must_preserve_symbol (lto_code_gen_t cg, const char * symbol)

    Adds to a list of all global symbols that must exist in the final generated

    code. If a function is not listed there, it might be inlined into every usage

    and optimized away.

    Defined at line 456 of file llvm/tools/lto/lto.cpp

  • LLVMOrcMaterializationUnitRef LLVMOrcLazyReexports (LLVMOrcLazyCallThroughManagerRef LCTM, LLVMOrcIndirectStubsManagerRef ISM, LLVMOrcJITDylibRef SourceRef, LLVMOrcCSymbolAliasMapPairs CallableAliases, size_t NumPairs)

    Create a MaterializationUnit to define lazy re-expots. These are callable

    entry points that call through to the given symbols.

    This function takes ownership of the CallableAliases array. The Name

    fields of the array elements are taken to have been retained for this

    function. This allows the following pattern...

    size_t NumPairs;

    LLVMOrcCSymbolAliasMapPairs CallableAliases;

    -- Build CallableAliases array --

    LLVMOrcMaterializationUnitRef MU =

    LLVMOrcLazyReexports(LCTM, ISM, JD, CallableAliases, NumPairs);

    ... without requiring cleanup of the elements of the CallableAliases array afterwards.

    The client is still responsible for deleting the CallableAliases array itself.

    If a client wishes to reuse elements of the CallableAliases array after this call they

    must explicitly retain each of the elements for themselves.

    Defined at line 450 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMDumpModule (LLVMModuleRef M)

    Dump a representation of a module to stderr.

    Defined at line 448 of file llvm/lib/IR/Core.cpp

  • void applyBitsNotInRegMaskToRegUnitsMask (const TargetRegisterInfo & TRI, BitVector & RUs, const uint32_t * Mask)

    Defined at line 450 of file llvm/lib/CodeGen/MachineLICM.cpp

  • void transferSRADebugInfo (GlobalVariable * GV, GlobalVariable * NGV, uint64_t FragmentOffsetInBits, uint64_t FragmentSizeInBits, uint64_t VarSize)

    Copy over the debug info for a variable to its SRA replacements.

    Defined at line 450 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool canUseSExt (ConstantInt * CI)

    Defined at line 451 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • Cursor lexNamedVirtualRegister (Cursor C, MIToken & Token)

    Defined at line 451 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • std::pair<StringRef, unsigned int> getPassNameAndInstanceNum (StringRef PassName)

    Defined at line 451 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • GenericValue lle_X_sscanf (FunctionType * FT, ArrayRef args)

    int sscanf(const char *format, ...);

    Defined at line 451 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • object::BuildID parseBuildIDArg (const opt::InputArgList & Args, int ID)

    Defined at line 451 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • template <typename T>
    void printVecVal (basic_string Indent, const DiffOutput & Attr, raw_ostream & OS)

    Defined at line 451 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • Error outputAllDiffs (StringRef InputFileNameA, StringRef InputFileNameB, DiffsCategorizedByFilesPresent & DiffsByFilesPresent)

    Output all diffs in

    using the desired output style.

    Defined at line 452 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • optional getSmallBestKnownTC (PredicatedScalarEvolution & PSE, Loop * L, bool CanUseConstantMax)

    Returns "best known" trip count, which is either a valid positive trip count

    or std::nullopt when an estimate cannot be made (including when the trip

    count would overflow), for the specified loop

    as defined by the

    following procedure:

    1) Returns exact trip count if it is known.

    2) Returns expected trip count according to profile data if any.

    3) Returns upper bound estimate if known, and if

    4) Returns std::nullopt if all of the above failed.

    Defined at line 452 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void addCanonicalIVRecipes (VPlan & Plan, VPBasicBlock * HeaderVPBB, VPBasicBlock * LatchVPBB, Type * IdxTy, DebugLoc DL)

    Add the necessary canonical IV and branch recipes required to control the

    loop.

    Defined at line 452 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • void handleAllocSite (Instruction & I, CallBase * CI, ArrayRef InlinedCallStack, LLVMContext & Ctx, OptimizationRemarkEmitter & ORE, uint64_t MaxColdSize, const int & AllocInfoSet, int & FullStackIdToAllocMatchInfo)

    Defined at line 452 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • bool isObjCClass (StringRef Name)

    Defined at line 453 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void initializeIfConverterPassOnce (PassRegistry & Registry)

    Defined at line 453 of file llvm/lib/CodeGen/IfConversion.cpp

  • LLVMBool LLVMPrintModuleToFile (LLVMModuleRef M, const char * Filename, char ** ErrorMessage)

    Print a representation of a module to a file. The ErrorMessage needs to be

    disposed with LLVMDisposeMessage. Returns 0 on success, 1 otherwise.

    Defined at line 453 of file llvm/lib/IR/Core.cpp

  • bool advanceToNextLeafType (SmallVectorImpl<Type *> & SubTypes, SmallVectorImpl<unsigned int> & Path)

    Move the given iterators to the next leaf type in depth first traversal.

    Performs a depth-first traversal of the type as specified by its arguments,

    stopping at the next leaf node (which may be a legitimate scalar type or an

    empty struct or array).

    Parameters

    SubTypes List of the partial components making up the type from outermost to innermost non-empty aggregate. The element currently represented is SubTypes.back()->getTypeAtIndex(Path.back() - 1).
    Path Set of extractvalue indices leading from the outermost type (SubTypes[0]) to the leaf node currently represented.

    Defined at line 453 of file llvm/lib/CodeGen/Analysis.cpp

  • void assignCalleeSavedSpillSlots (MachineFunction & F, const BitVector & SavedRegs)

    Defined at line 453 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • template <typename AllocatorT, size_t SlabSize, size_t SizeThreshold, size_t GrowthDelay>
    void * operator new (size_t Size, llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold, GrowthDelay> & Allocator)

    Defined at line 454 of file llvm/include/llvm/Support/Allocator.h

  • void printTLSDirectory (const COFFObjectFile * Obj)

    Defined at line 454 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • Expected<NewSymbolInfo> parseNewSymbolInfo (StringRef FlagValue)

    Defined at line 454 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • basic_string computeSPIRVDataLayout (const Triple & TT)

    Defined at line 455 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • PredsWithCondsTy shouldSplitOnPredicatedArgument (CallBase & CB, DomTreeUpdater & DTU)

    Checks if any of the arguments in CS are predicated in a predecessor and

    returns a list of predecessors with the conditions that hold on their edges

    to CS.

    Defined at line 455 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • bool dominatesMergePoint (Value * V, BasicBlock * BB, Instruction * InsertPt, SmallPtrSetImpl<Instruction *> & AggressiveInsts, InstructionCost & Cost, InstructionCost Budget, const TargetTransformInfo & TTI, AssumptionCache * AC, SmallPtrSetImpl<Instruction *> & ZeroCostInstructions, unsigned int Depth)

    If we have a merge point of an "if condition" as accepted above,

    return true if the specified value dominates the block. We don't handle

    the true generality of domination here, just a special case which works

    well enough for us.

    If AggressiveInsts is non-null, and if V does not dominate BB, we check to

    see if V (which must be an instruction) and its recursive operands

    that do not dominate BB have a combined cost lower than Budget and

    are non-trapping. If both are true, the instruction is inserted into the

    set and true is returned.

    The cost for most non-trapping instructions is defined as 1 except for

    Select whose cost is 2.

    After this function returns, Cost is increased by the cost of

    V plus its non-dominating operands. If that cost is greater than

    Budget, false is returned and Cost is undefined.

    Defined at line 455 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • GenericValue executeFCMP_OLE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 456 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • unsigned int computeLabelDiff (const MCAssembler & Asm, const MCSymbol * Begin, const MCSymbol * End)

    Defined at line 456 of file llvm/lib/MC/MCCodeView.cpp

  • void filterByName (const StringSet<> & Names, iterator_range CUs, raw_ostream & OS, function GetNameForDWARFReg)

    Print only DIEs that have a certain name.

    Defined at line 456 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • Decomposition decomposeGEP (GEPOperator & GEP, SmallVectorImpl<ConditionTy> & Preconditions, bool IsSigned, const DataLayout & DL)

    Defined at line 456 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • SectionKind getELFKindForNamedSection (StringRef Name, SectionKind K)

    Defined at line 456 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • unsigned int getPartNumElems (unsigned int Size, unsigned int NumParts)

    Returns power-of-2 number of elements in a single register (part), given the

    total number of elements

    and number of registers (parts)

    Defined at line 457 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool hasObjCCategory (StringRef Name)

    Defined at line 457 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • bool formLCSSAOnAllLoops (const LoopInfo * LI, const DominatorTree & DT, ScalarEvolution * SE)

    Process all loops in the function, inner-most out.

    Defined at line 457 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • void clobberRegisterUses (int & RegVars, unsigned int RegNo, DbgValueHistoryMap & HistMap, int & LiveEntries, const MachineInstr & ClobberingInstr)

    Terminate the location range for variables described by register

    by inserting

    to their history.

    Defined at line 457 of file llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp

  • bool PGOMemOPSizeOptImpl (Function & F, BlockFrequencyInfo & BFI, OptimizationRemarkEmitter & ORE, DominatorTree * DT, TargetLibraryInfo & TLI)

    Defined at line 457 of file llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp

  • void ProfileBitsInit (FoldingSetNodeID & ID, ArrayRef Range)

    Defined at line 458 of file llvm/lib/TableGen/Record.cpp

  • pair tryInsertCastToCommonAddrSpace (IRBuilderBase & B, Value * Addr1, Value * Addr2, const TargetTransformInfo & TTI)

    If

    and

    are pointers to different address spaces, create an

    addresspacecast to obtain a pair of pointers in the same addressspace. The

    caller needs to ensure that addrspacecasting is possible.

    No-op if the pointers are in the same address space.

    Defined at line 458 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • optional GetOptionalAbsDifference (MCStreamer & Streamer, const MCSymbol * LHS, const MCSymbol * RHS)

    Defined at line 459 of file llvm/lib/MC/MCWin64EH.cpp

  • bool willNotOverflow (BinaryOpIntrinsic * BO, LazyValueInfo * LVI)

    See if we can prove that the given binary op intrinsic will not overflow.

    Defined at line 459 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • bool isDILocationReachable (SmallPtrSetImpl<Metadata *> & Visited, SmallPtrSetImpl<Metadata *> & Reachable, Metadata * MD)

    Return true if a node is a DILocation or if a DILocation is

    indirectly referenced by one of the node's children.

    Defined at line 459 of file llvm/lib/IR/DebugInfo.cpp

  • uint64_t computeHeadersSize (Kind Kind, uint64_t NumMembers, uint64_t StringMemberSize, uint64_t NumSyms, uint64_t SymNamesSize, SymMap * SymMap)

    Defined at line 459 of file llvm/lib/Object/ArchiveWriter.cpp

  • bool searchConstantExprForGlobalVariables (Value * V, SmallDenseMap<GlobalVariable *, Value *> & GVLoadMap, SmallVector<GlobalVariableUse> & GVUses)

    Defined at line 460 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp

  • void maybeParseOptions (lto_code_gen_t cg)

    Defined at line 461 of file llvm/tools/lto/lto.cpp

  • void addAssumeNonNull (AssumptionCache * AC, LoadInst * LI)

    Given a LoadInst LI this adds assume(LI != null) after it.

    Defined at line 461 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp

  • Cursor maybeLexRegister (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 461 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • optional constantMatches (Value * V, unsigned int GVN, DenseMap<unsigned int, Constant *> & GVNToConstant)

    Find whether

    matches the Constants previously found for the

    Parameters

    V - The value to check for consistency.
    GVN - The global value number assigned to
    GVNToConstant - The mapping of global value number to Constants.

    Defined at line 462 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void initializeSeparateConstOffsetFromGEPLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 463 of file llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp

  • template <typename Iter, typename Pred, typename Less>
    Iter max_if (Iter B, Iter E, Pred P, Less L)

    Defined at line 463 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void resolveTypeIndexReferences (ArrayRef RecordData, ArrayRef Refs, SmallVectorImpl<TypeIndex> & Indices)

    Defined at line 463 of file llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp

  • void testLTOModule (const TargetOptions & Options)

    Load each IR file and dump certain information based on active flags.

    The main point here is to provide lit-testable coverage for the LTOModule

    functionality that's exposed by the C API. Moreover, this provides testing

    coverage for modules that have been created in their own contexts.

    Defined at line 463 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • template <typename AllocatorT, size_t SlabSize, size_t SizeThreshold, size_t GrowthDelay>
    void operator delete (void * , llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold, GrowthDelay> & )

    Defined at line 464 of file llvm/include/llvm/Support/Allocator.h

  • unsigned int getNumElems (unsigned int Size, unsigned int PartNumElems, unsigned int Part)

    Returns correct remaining number of elements, considering total amount

    (power-of-2 number) of elements in a single register

    and current register (part)

    Defined at line 464 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void getObjCClassCategory (StringRef In, StringRef & Class, StringRef & Category)

    Defined at line 464 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void emitDXILIntrinsicArgSelectTypes (const RecordKeeper & Records, raw_ostream & OS)

    Emit the IntrinArgSelect type for DirectX intrinsic to DXIL Op lowering

    Defined at line 464 of file llvm/utils/TableGen/DXILEmitter.cpp

  • template <char C>
    raw_ostream & write_padding (raw_ostream & OS, unsigned int NumChars)

    Defined at line 465 of file llvm/lib/Support/raw_ostream.cpp

  • Value * memChrToCharCompare (CallInst * CI, Value * NBytes, IRBuilderBase & B, const DataLayout & DL)

    Helper to transform memchr(S, C, N) == S to N

    &

    &

    *S == C and, when

    NBytes is null, strchr(S, C) to *S == C. A precondition of the function

    is that either S is dereferenceable or the value of N is nonzero.

    Defined at line 465 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • int64_t GetAbsDifference (MCStreamer & Streamer, const MCSymbol * LHS, const MCSymbol * RHS)

    Defined at line 466 of file llvm/lib/MC/MCWin64EH.cpp

  • void filterMarkup (const opt::InputArgList & Args, LLVMSymbolizer & Symbolizer)

    Symbolize markup from stdin and write the result to stdout.

    Defined at line 466 of file llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  • GenericValue lle_X_scanf (FunctionType * FT, ArrayRef args)

    int scanf(const char *format, ...);

    Defined at line 466 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • unsigned int EstimateRuntime (int I, int E)

    EstimateRuntime - Make a rough estimate for how long it will take to run

    the specified code.

    Defined at line 466 of file llvm/lib/CodeGen/BranchFolding.cpp

  • bool isHoistableInstructionType (Instruction * I)

    Return true if the given instruction type can be hoisted by CHR.

    Defined at line 467 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • unsigned int ComputeLinkerOptionsLoadCommandSize (const std::vector<std::string> & Options, bool is64Bit)

    Defined at line 467 of file llvm/lib/MC/MachObjectWriter.cpp

  • bool checkPHIs (FlattenInfo & FI, const TargetTransformInfo * TTI)

    Defined at line 468 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • Error checkDysymtabCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char ** DysymtabLoadCmd, std::list<MachOElement> & Elements)

    Defined at line 468 of file llvm/lib/Object/MachOObjectFile.cpp

  • ScheduleDAGInstrs * useDefaultMachineSched (MachineSchedContext * C)

    A dummy default scheduler factory indicates whether the scheduler

    is overridden on the command line.

    Defined at line 469 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • void LLVMOrcDisposeMaterializationResponsibility (LLVMOrcMaterializationResponsibilityRef MR)

    Disposes of the passed MaterializationResponsibility object.

    This should only be done after the symbols covered by the object have either

    been resolved and emitted (via

    LLVMOrcMaterializationResponsibilityNotifyResolved and

    LLVMOrcMaterializationResponsibilityNotifyEmitted) or failed (via

    LLVMOrcMaterializationResponsibilityFailMaterialization).

    Defined at line 469 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool isSimpleReturn (const MachineInstr & MI)

    Defined at line 469 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • bool hasFnAttributes (const CodeGenIntrinsic & Int)

    Returns true if

    has a non-empty set of function attributes. Note that

    NoUnwind = !canThrow, so we need to negate it's sense to test if the

    intrinsic has NoUnwind attribute.

    Defined at line 469 of file llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp

  • bool isRecognizedNamespace (const unsigned char * NsHref)

    Defined at line 469 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • void updateTerminator (MachineBasicBlock * BBToUpdate, MachineBasicBlock * NMBB, const TargetInstrInfo * TII)

    This function updates the branches post restore point split.

    Restore point has been split.

    Old restore point: MBB

    New restore point: NMBB

    Any basic block(say BBToUpdate) which had a fallthrough to MBB

    previously should

    1. Fallthrough to NMBB iff NMBB is inserted immediately above MBB in the

    block layout OR

    2. Branch unconditionally to NMBB iff NMBB is inserted at any other place.

    Defined at line 469 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • bool handleSingleFileAction (const Context & Ctx, StringRef Action, int act)

    Defined at line 469 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • void forceRenaming (GlobalValue * GV, StringRef Name)

    The LLVM SymbolTable class autorenames globals that conflict in the symbol

    table. This is good for all clients except for us. Go through the trouble

    to force this back.

    Defined at line 469 of file llvm/lib/Linker/IRMover.cpp

  • void setDeducedOverflowingFlags (Value * V, BinaryOps Opcode, bool NewNSW, bool NewNUW)

    Defined at line 469 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void generateGetClauseVal (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate function implementations for

    <enumClauseValue

    > get

    <enumClauseValue

    >(StringRef Str) and

    StringRef get

    <enumClauseValue

    >Name(

    <enumClauseValue

    >)

    Defined at line 469 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • void hoistLoopToNewParent (Loop & L, BasicBlock & Preheader, DominatorTree & DT, LoopInfo & LI, MemorySSAUpdater * MSSAU, ScalarEvolution * SE)

    Hoist the current loop up to the innermost loop containing a remaining exit.

    Because we've removed an exit from the loop, we may have changed the set of

    loops reachable and need to move the current loop up the loop nest or even

    to an entirely separate nest.

    Defined at line 469 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void scalarizeMaskedGather (const DataLayout & DL, bool HasBranchDivergence, CallInst * CI, DomTreeUpdater * DTU, bool & ModifiedDT)

    Translate a masked gather intrinsic like

    <

    16 x i32 >

    .masked.gather.v16i32(

    <

    16 x i32*> %Ptrs, i32 4,

    <

    16 x i1> %Mask,

    <

    16 x i32> %Src)

    to a chain of basic blocks, with loading element one-by-one if

    the appropriate mask bit is set

    %Ptrs = getelementptr i32, i32* %base,

    <

    16 x i64> %ind

    %Mask0 = extractelement

    <

    16 x i1> %Mask, i32 0

    br i1 %Mask0, label %cond.load, label %else

    cond.load:

    %Ptr0 = extractelement

    <

    16 x i32*> %Ptrs, i32 0

    %Load0 = load i32, i32* %Ptr0, align 4

    %Res0 = insertelement

    <

    16 x i32> poison, i32 %Load0, i32 0

    br label %else

    else:

    %res.phi.else = phi

    <

    16 x i32>[%Res0, %cond.load], [poison, %0]

    %Mask1 = extractelement

    <

    16 x i1> %Mask, i32 1

    br i1 %Mask1, label %cond.load1, label %else2

    cond.load1:

    %Ptr1 = extractelement

    <

    16 x i32*> %Ptrs, i32 1

    %Load1 = load i32, i32* %Ptr1, align 4

    %Res1 = insertelement

    <

    16 x i32> %res.phi.else, i32 %Load1, i32 1

    br label %else2

    . . .

    %Result = select

    <

    16 x i1> %Mask,

    <

    16 x i32> %res.phi.select,

    <

    16 x i32> %Src

    ret

    <

    16 x i32> %Result

    Defined at line 469 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • int64_t truncateToSize (int64_t Value, unsigned int Bytes)

    Defined at line 470 of file llvm/lib/MC/MCAsmStreamer.cpp

  • lto_bool_t lto_codegen_write_merged_modules (lto_code_gen_t cg, const char * path)

    Writes a new object file at the specified path that contains the

    merged contents of all modules added so far.

    Returns true on error (check lto_get_error_message() for details).

    Defined at line 470 of file llvm/tools/lto/lto.cpp

  • MCInstPrinter * createX86MCInstPrinter (const Triple & T, unsigned int SyntaxVariant, const MCAsmInfo & MAI, const MCInstrInfo & MII, const MCRegisterInfo & MRI)

    Defined at line 470 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp

  • GenericValue executeFCMP_OGE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 470 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • bool isCTTZTable (Constant * Table, const APInt & Mul, const APInt & Shift, const APInt & AndMask, Type * AccessTy, unsigned int InputBits, const APInt & GEPIdxFactor, const DataLayout & DL)

    Check if this array of constants represents a cttz table.

    Iterate over the elements from

    by trying to find/match all

    the numbers from 0 to

    that should represent cttz results.

    Defined at line 470 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • void DecodePALIGNRMask (MVT VT, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask, bool AlignDirection, bool Unary)

    DecodePALIGNRMask returns the shuffle mask of vpalign instruction.

    vpalign works according to lanes

    Where Lane is the # of lanes in a register:

    VectorWide = 128 => Lane = 1

    VectorWide = 256 => Lane = 2

    For Lane = 1 shuffle pattern is: {DiffToJump,...,DiffToJump+VF-1}.

    For Lane = 2 shuffle pattern is:

    {DiffToJump,...,VF/2-1,VF,...,DiffToJump+VF-1}.

    Imm variable sets the offset amount. The result of the

    function is stored inside ShuffleMask vector and it built as described in

    the begin of the description. AlignDirection is a boolean that indicates the

    direction of the alignment. (false - align to the "right" side while true -

    align to the "left" side)

    Defined at line 470 of file llvm/lib/Target/X86/X86InterleavedAccess.cpp

  • void scanOneBB (Instruction * Start, Instruction * End, int & Calls, int & Seen, int & Worklist)

    Defined at line 470 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • bool isROV (ResourceKind Kind, TargetExtType * Ty)

    Defined at line 470 of file llvm/lib/Analysis/DXILResource.cpp

  • basic_string shortBundleName (ArrayRef VL, int Idx)

    Print a short descriptor of the instruction bundle suitable for debug output.

    Defined at line 471 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isTwoAddrUse (MachineInstr & MI, Register Reg, Register & DstReg)

    Return true if the specified MI uses the specified register as a two-address

    use. If so, return the destination register by reference.

    Defined at line 471 of file llvm/lib/CodeGen/TwoAddressInstructionPass.cpp

  • RelocKindGroup relocKindGroup (const BTF::BPFFieldReloc * Reloc)

    Defined at line 471 of file llvm/lib/DebugInfo/BTF/BTFParser.cpp

  • bool addPass (PassManagerBase & PM, const char * argv0, StringRef PassName, TargetPassConfig & TPC)

    Defined at line 471 of file llvm/tools/llc/llc.cpp

  • void thinLTOInternalizeAndPromoteGUID (ValueInfo VI, function_ref<bool (StringRef, ValueInfo)> isExported, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing)

    Defined at line 471 of file llvm/lib/LTO/LTO.cpp

  • bool hasPrefix (StringRef SectionName, StringRef Prefix)

    Defined at line 472 of file llvm/lib/MC/MCParser/ELFAsmParser.cpp

  • void convertMetadataToAssumes (LoadInst * LI, Value * Val, const DataLayout & DL, AssumptionCache * AC, const DominatorTree * DT)

    Defined at line 472 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp

  • void tryToGetTargetInfo (const MachineOperand & MO, const TargetRegisterInfo *& TRI)

    Try to crawl up to the machine function and get TRI from it.

    Defined at line 473 of file llvm/lib/CodeGen/MachineOperand.cpp

  • Error tryOutputAllDiffs (StringRef InputFileNameA, StringRef InputFileNameB, DiffsCategorizedByFilesPresent & DiffsByFilesPresent)

    Boolean wrapper for outputDiff which handles errors.

    Defined at line 473 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • void printLoadConfiguration (const COFFObjectFile * Obj)

    Defined at line 473 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • void thinSlice (LLVMContext & LLVMCtx, ArrayRef<OwningBinary<Binary>> InputBinaries, StringRef ArchType, StringRef OutputFileName)

    Defined at line 473 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • LLVMOrcJITDylibRef LLVMOrcMaterializationResponsibilityGetTargetDylib (LLVMOrcMaterializationResponsibilityRef MR)

    Returns the target JITDylib that these symbols are being materialized into.

    Defined at line 474 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void hasher_push_cv (llvm_blake3_hasher * self, uint8_t[32] new_cv, uint64_t chunk_counter)

    In reference_impl.rs, we merge the new CV with existing CVs from the stack

    before pushing it. We can do that because we know more input is coming, so

    we know none of the merges are root.

    This setting is different. We want to feed as much input as possible to

    compress_subtree_wide(), without setting aside anything for the chunk_state.

    If the user gives us 64 KiB, we want to parallelize over all 64 KiB at once

    as a single subtree, if at all possible.

    This leads to two problems:

    1) This 64 KiB input might be the only call that ever gets made to update.

    In this case, the root node of the 64 KiB subtree would be the root node

    of the whole tree, and it would need to be ROOT finalized. We can't

    compress it until we know.

    2) This 64 KiB input might complete a larger tree, whose root node is

    similarly going to be the root of the whole tree. For example, maybe

    we have 196 KiB (that is, 128 + 64) hashed so far. We can't compress the

    node at the root of the 256 KiB subtree until we know how to finalize it.

    The second problem is solved with "lazy merging". That is, when we're about

    to add a CV to the stack, we don't merge it with anything first, as the

    reference impl does. Instead we do merges using the *previous* CV that was

    added, which is sitting on top of the stack, and we put the new CV

    (unmerged) on top of the stack afterwards. This guarantees that we never

    merge the root node until finalize().

    Solving the first problem requires an additional tool,

    compress_subtree_to_parent_node(). That function always returns the top

    *two* chaining values of the subtree it's compressing. We then do lazy

    merging with each of them separately, so that the second CV will always

    remain unmerged. (That also helps us support extendable output when we're

    hashing an input all-at-once.)

    Defined at line 474 of file llvm/lib/Support/BLAKE3/blake3.c

  • Error createBundleDir (StringRef BundleBase)

    Defined at line 474 of file llvm/tools/dsymutil/dsymutil.cpp

  • bool isIndirectBranchOrTailCall (const MachineInstr & MI)

    Defined at line 474 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • void createProfileFileNameVar (Module & M)

    Create the variable for the profile file name.

    Defined at line 474 of file llvm/lib/Transforms/Instrumentation/MemProfInstrumentation.cpp

  • bool optimizeToShortImmediateForm (MCInst & MI)

    Defined at line 474 of file llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimization.cpp

  • Type * DecodeFixedType (ArrayRef<Intrinsic::IITDescriptor> & Infos, ArrayRef Tys, LLVMContext & Context)

    Defined at line 474 of file llvm/lib/IR/Intrinsics.cpp

  • const void * lto_codegen_compile (lto_code_gen_t cg, size_t * length)

    Generates code for all added modules into one native object file.

    This calls lto_codegen_optimize then lto_codegen_compile_optimized.

    On success returns a pointer to a generated mach-o/ELF buffer and

    length set to the buffer size. The buffer is owned by the

    lto_code_gen_t and will be freed when lto_codegen_dispose()

    is called, or lto_codegen_compile() is called again.

    On failure, returns NULL (check lto_get_error_message() for details).

    Defined at line 475 of file llvm/tools/lto/lto.cpp

  • char * LLVMPrintModuleToString (LLVMModuleRef M)

    Return a string representation of the module. Use

    LLVMDisposeMessage to free the string.

    Defined at line 475 of file llvm/lib/IR/Core.cpp

  • int addSEHExcept (WinEHFuncInfo & FuncInfo, int ParentState, const Function * Filter, const BasicBlock * Handler)

    Defined at line 475 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • int ParseUnary ()

    unary

    ::= primary

    ::= '!' unary

    Defined at line 475 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • void checkARM64Instructions (MCStreamer & Streamer, ArrayRef Insns, const MCSymbol * Begin, const MCSymbol * End, StringRef Name, StringRef Type)

    Defined at line 475 of file llvm/lib/MC/MCWin64EH.cpp

  • void dumpExampleDependence (raw_ostream & OS, DependenceInfo * DA, ScalarEvolution & SE, LoopInfo & LI, bool NormalizeResults)

    Used to test the dependence analyzer.

    Looks through the function, noting instructions that may access memory.

    Calls depends() on every possible pair and prints out the result.

    Ignores all other instructions.

    Defined at line 475 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • bool simplifyOneLoop (Loop * L, SmallVectorImpl<Loop *> & Worklist, DominatorTree * DT, LoopInfo * LI, ScalarEvolution * SE, AssumptionCache * AC, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)

    Simplify one loop and queue further loops for simplification.

    Defined at line 475 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • StringRef getObjCMethodName (StringRef In)

    Defined at line 476 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • bool isHoistable (Instruction * I, DominatorTree & DT)

    Return true if the given instruction can be hoisted by CHR.

    Defined at line 476 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • unsigned int computeAddrSpace (unsigned int AddrSpace, Module * M)

    ===----------------------------------------------------------------------===//

    Function Implementation

    ===----------------------------------------------------------------------===//

    Defined at line 476 of file llvm/lib/IR/Function.cpp

  • void collectAbstractOriginFnInfo (DWARFDie Die, uint64_t SPOffset, AbstractOriginVarsTyMap & GlobalAbstractOriginFnInfo, AbstractOriginVarsTyMap & LocalAbstractOriginFnInfo)

    Recursively collect variables from subprogram with DW_AT_inline attribute.

    Defined at line 476 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • GlobalOffsetTableExprKind startsWithGlobalOffsetTable (const MCExpr * Expr)

    Check if this expression starts with _GLOBAL_OFFSET_TABLE_ and if it is

    of the form _GLOBAL_OFFSET_TABLE_-symbol. This is needed to support PIC on

    ELF i386 as _GLOBAL_OFFSET_TABLE_ is magical. We check only simple case that

    are know to be used: _GLOBAL_OFFSET_TABLE_ by itself or at the start of a

    binary expression.

    TODO: Move this to X86AsmBackend.cpp at relocation decision phase so that we

    don't have to mess with MCExpr.

    Defined at line 476 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

  • template <>
    void printVecVal<llvm::DiffSymVec> (basic_string Indent, const DiffOutput & Attr, raw_ostream & OS)

    Defined at line 476 of file llvm/tools/llvm-readtapi/DiffEngine.cpp

  • bool expandProtectedFieldPtr (Function & Intr)

    Defined at line 476 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • Instruction * foldCttzCtlz (IntrinsicInst & II, InstCombinerImpl & IC)

    Defined at line 476 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • int localTestFunc ()

    Defined at line 477 of file llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp

  • bool isTsanAtomic (const Instruction * I)

    Defined at line 477 of file llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp

  • void XXH3_accumulate_512_scalar (uint64_t * acc, const uint8_t * input, const uint8_t * secret)

    Defined at line 477 of file llvm/lib/Support/xxhash.cpp

  • bool isVPIntrinsic (Intrinsic::ID ID)

    Defined at line 477 of file llvm/lib/IR/IntrinsicInst.cpp

  • bool allowSectionTypeMismatch (const Triple & TT, StringRef SectionName, unsigned int Type)

    Defined at line 477 of file llvm/lib/MC/MCParser/ELFAsmParser.cpp

  • bool isFrameLoadOpcode (int Opcode, TypeSize & MemBytes)

    Defined at line 477 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool hasRecognizedNamespace (xmlNodePtr Node)

    Defined at line 478 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • StringRef checkStr (LLVMRemarkStringRef Str, unsigned int ExpectedLen)

    Defined at line 478 of file llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp

  • basic_string fflagsToString (FFlags F)

    Defined at line 478 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • void printSourceLine (raw_ostream & S, StringRef LineContents)

    Defined at line 478 of file llvm/lib/Support/SourceMgr.cpp

  • const TargetRegisterClass * canFoldCopy (const MachineInstr & MI, const TargetInstrInfo & TII, unsigned int FoldIdx)

    If the COPY instruction in MI can be folded to a stack operation, return

    the register class to use.

    Defined at line 478 of file llvm/lib/CodeGen/TargetInstrInfo.cpp

  • Value * threadBinOpOverPHI (BinaryOps Opcode, Value * LHS, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    In the case of a binary operation with an operand that is a PHI instruction,

    try to simplify the binop by seeing whether evaluating it on the incoming

    phi values yields the same result for every value. If so returns the common

    value, otherwise returns null.

    Defined at line 478 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • LLVMOrcExecutionSessionRef LLVMOrcMaterializationResponsibilityGetExecutionSession (LLVMOrcMaterializationResponsibilityRef MR)

    Returns the ExecutionSession for this MaterializationResponsibility.

    Defined at line 479 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • basic_string computeLanaiDataLayout ()

    Defined at line 479 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • Value * getAllocaPos (BasicBlock * BB)

    Defined at line 479 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • void splitCodeGen (const Config & C, TargetMachine * TM, int AddStream, unsigned int ParallelCodeGenParallelismLevel, Module & Mod, const ModuleSummaryIndex & CombinedIndex)

    Defined at line 479 of file llvm/lib/LTO/LTOBackend.cpp

  • void emitDXILOperationTable (ArrayRef<DXILOperationDesc> Ops, raw_ostream & OS)

    Emit DXIL operation table

    Parameters

    A vector of DXIL Ops
    Output stream

    Defined at line 479 of file llvm/utils/TableGen/DXILEmitter.cpp

  • void setThreadBackgroundPriority ()

    FIXME: Portability.

    Defined at line 480 of file llvm/lib/Support/CrashRecoveryContext.cpp

  • const char * getTargetIndexName (const MachineFunction & MF, int Index)

    Defined at line 480 of file llvm/lib/CodeGen/MachineOperand.cpp

  • bool isAllDILocation (SmallPtrSetImpl<Metadata *> & Visited, SmallPtrSetImpl<Metadata *> & AllDILocation, const SmallPtrSetImpl<Metadata *> & DIReachable, Metadata * MD)

    Defined at line 480 of file llvm/lib/IR/DebugInfo.cpp

  • void insertDeleteInstructions (MachineBasicBlock * MBB, MachineInstr & MI, SmallVectorImpl<MachineInstr *> & InsInstrs, SmallVectorImpl<MachineInstr *> & DelInstrs, MachineTraceMetrics::Ensemble * TraceEnsemble, int & RegUnits, const TargetInstrInfo * TII, unsigned int Pattern, bool IncrementalUpdate)

    Inserts InsInstrs and deletes DelInstrs. Incrementally updates instruction

    depths if requested.

    Parameters

    MBB basic block to insert instructions in
    MI current machine instruction
    InsInstrs new instructions to insert in
    DelInstrs instruction to delete from
    TraceEnsemble is a pointer to the machine trace information
    RegUnits set of live registers, needed to compute instruction depths
    TII is target instruction info, used to call target hook
    Pattern is used to call target hook finalizeInsInstrs
    IncrementalUpdate if true, compute instruction depths incrementally, otherwise invalidate the trace

    Defined at line 480 of file llvm/lib/CodeGen/MachineCombiner.cpp

  • GenericValue lle_X_fprintf (FunctionType * FT, ArrayRef Args)

    int fprintf(FILE *, const char *, ...) - a very rough implementation to make

    output useful.

    Defined at line 481 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • void setInsertionPoint (IRBuilder<> & Builder, Value * V, bool Before)

    Sets the appropriate insert point on Builder where we can add

    a replacement Instruction for V (if that is possible).

    Defined at line 481 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool runAndGetCommandOutput (const char * ExePath, ArrayRef argv, std::unique_ptr<char[]> & Buffer, off_t & Size)

    Defined at line 481 of file llvm/unittests/TargetParser/Host.cpp

  • MCRelocationInfo * createX86MCRelocationInfo (const Triple & TheTriple, MCContext & Ctx)

    Defined at line 482 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp

  • void convertFloatingToInteger (BlockFrequencyInfoImplBase & BFI, const Scaled64 & Min, const Scaled64 & Max)

    Defined at line 482 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • Value * getTrueOrFalseValue (SelectOptimizeImpl::SelectLike & SI, bool isTrue, int & OptSelects, BasicBlock * B)

    Returns optimised value on

    branch. For SelectInst that would be

    either True or False value. For (BinaryOperator) instructions, where the

    condition may be skipped, the operation will use a non-conditional operand.

    For example, for `or(V,zext(cond))` this function would return V.

    However, if the conditional operand on

    branch matters, we create a

    clone of instruction at the end of that branch

    and replace the

    condition operand with a constant.

    Also /p OptSelects contains previously optimised select-like instructions.

    If the current value uses one of the optimised values, we can optimise it

    further by replacing it with the corresponding value on the given branch

    Defined at line 482 of file llvm/lib/CodeGen/SelectOptimize.cpp

  • template <class Changer>
    void changeUseLists (Module & M, Changer changeValueUseList)

    Defined at line 482 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • void blake3_hasher_update_base (llvm_blake3_hasher * self, const void * input, size_t input_len, _Bool use_tbb)

    Defined at line 482 of file llvm/lib/Support/BLAKE3/blake3.c

  • void getDies (DWARFContext & DICtx, const AppleAcceleratorTable & Accel, StringRef Name, SmallVectorImpl<DWARFDie> & Dies)

    Defined at line 483 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • Error trySizeSiff ()

    Defined at line 483 of file llvm/tools/llvm-remarkutil/RemarkSizeDiff.cpp

  • bool allSameBlock (ArrayRef VL)

    Defined at line 483 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void setStubOptions (opt::InputArgList & Args, StubOptions & Opt)

    Defined at line 484 of file llvm/tools/llvm-readtapi/llvm-readtapi.cpp

  • std::optional<OptimizationLevel> parseOptLevel (StringRef S)

    Defined at line 484 of file llvm/lib/Passes/PassBuilder.cpp

  • GenericValue executeFCMP_OLT (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 484 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • Error reconcileNamespaces (xmlNodePtr Node)

    Ensure a node's inherited namespace is actually defined in the tree it

    resides in.

    Defined at line 484 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • Expected getSymbolicFile (MemoryBufferRef Buf, LLVMContext & Context, Kind Kind, function_ref Warn)

    Defined at line 484 of file llvm/lib/Object/ArchiveWriter.cpp

  • VPValue * cloneForLane (VPlan & Plan, VPBuilder & Builder, Type * IdxTy, VPSingleDefRecipe * DefR, VPLane Lane, const DenseMap<VPValue *, SmallVector<VPValue *>> & Def2LaneDefs)

    Create a single-scalar clone of

    (must be a VPReplicateRecipe or

    VPInstruction) for lane

    Use

    to look up scalar

    definitions for operands of

    .

    Defined at line 484 of file llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp

  • lto_bool_t lto_codegen_optimize (lto_code_gen_t cg)

    Runs optimization for the merged module. Returns true on error.

    Defined at line 485 of file llvm/tools/lto/lto.cpp

  • LLVMOrcCSymbolFlagsMapPairs LLVMOrcMaterializationResponsibilityGetSymbols (LLVMOrcMaterializationResponsibilityRef MR, size_t * NumPairs)

    Returns the symbol flags map for this responsibility instance.

    The length of the array is returned in NumPairs and the caller is responsible

    for the returned memory and needs to call LLVMOrcDisposeCSymbolFlagsMap.

    To use the returned symbols beyond the livetime of the

    MaterializationResponsibility requires the caller to retain the symbols

    explicitly.

    Defined at line 485 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool verifyOutput (StringRef OutputFile, StringRef Arch, DsymutilOptions Options, std::mutex & Mutex)

    Defined at line 485 of file llvm/tools/dsymutil/dsymutil.cpp

  • bool checkInstructions (const DebugInstMap & DILocsBefore, const DebugInstMap & DILocsAfter, const WeakInstValueMap & InstToDelete, StringRef NameOfWrappedPass, StringRef FileNameFromCU, bool ShouldWriteIntoJSON, llvm::json::Array & Bugs)

    This checks the preservation of the original debug info attached to

    instructions.

    Defined at line 485 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • void LLVMSetModuleInlineAsm2 (LLVMModuleRef M, const char * Asm, size_t Len)

    Set inline assembly for a module.

    Defined at line 486 of file llvm/lib/IR/Core.cpp

  • bool hasThreadBackgroundPriority ()

    Defined at line 486 of file llvm/lib/Support/CrashRecoveryContext.cpp

  • int addSEHFinally (WinEHFuncInfo & FuncInfo, int ParentState, const BasicBlock * Handler)

    Defined at line 486 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • bool isMemoryLocation (DIExpressionCursor ExprCursor)

    Assuming a well-formed expression, match "DW_OP_deref*

    DW_OP_LLVM_fragment?".

    Defined at line 486 of file llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp

  • Cursor maybeLexGlobalValue (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 486 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • DISubprogram * getLocalFunctionMetadata (Value * V)

    Defined at line 486 of file llvm/lib/IR/Metadata.cpp

  • void FixTail (MachineBasicBlock * CurMBB, MachineBasicBlock * SuccBB, const TargetInstrInfo * TII, const DebugLoc & BranchDL)

    CurMBB needs to add an unconditional branch to SuccMBB (we removed these

    branches temporarily for tail merging). In the case where CurMBB ends

    with a conditional branch to the next block, optimize by reversing the

    test and conditionally branching to SuccMBB instead.

    Defined at line 486 of file llvm/lib/CodeGen/BranchFolding.cpp

  • void computeKnownBitsAddSub (bool Add, const Value * Op0, const Value * Op1, bool NSW, bool NUW, const APInt & DemandedElts, KnownBits & KnownOut, KnownBits & Known2, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 486 of file llvm/lib/Analysis/ValueTracking.cpp

  • int loadFile (StringRef Filename)

    Defined at line 487 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • bool tryToSplitCallSite (CallBase & CB, TargetTransformInfo & TTI, DomTreeUpdater & DTU)

    Defined at line 487 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • bool contains (SmallPtrSetImpl<ConstantExpr *> & Cache, ConstantExpr * Expr, Constant * C)

    Defined at line 487 of file llvm/lib/IR/Value.cpp

  • void createExtractsForLiveOuts (VPlan & Plan, VPBasicBlock * MiddleVPBB)

    Creates extracts for values in

    defined in a loop region and used

    outside a loop region.

    Defined at line 487 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • const std::set<Value *> & getBaseValues (Value * V, DominatorTree & DT, DenseMap<Value *, std::set<Value *>> & Visited)

    Recursively traverse the use-def chains of the given value and return a set

    of the unhoistable base values defined within the scope (excluding the

    first-region entry block) or the (hoistable or unhoistable) base values that

    are defined outside (including the first-region entry block) of the

    scope. The returned set doesn't include constants.

    Defined at line 487 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • optional tryIntoAPInt (const SCEV * S)

    Defined at line 488 of file llvm/lib/Analysis/Delinearization.cpp

  • void XXH3_scrambleAcc_scalar (uint64_t * acc, const uint8_t * secret)

    Defined at line 488 of file llvm/lib/Support/xxhash.cpp

  • unsigned int FindInputLineInFilter (DumpInputFilterValue DumpInputFilter, unsigned int CurInputLine, const std::vector<InputAnnotation>::iterator & AnnotationBeg, const std::vector<InputAnnotation>::iterator & AnnotationEnd)

    Defined at line 488 of file llvm/utils/FileCheck/FileCheck.cpp

  • Expected analyzeHeader (optional O, BitstreamCursor & Stream)

    Defined at line 488 of file llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp

  • bool isArgUnmodifiedByAllCalls (Argument * Arg, FunctionAnalysisManager & FAM)

    Try to prove that all Calls to F do not modify the memory pointed to by Arg,

    using alias analysis local to each caller of F.

    Defined at line 489 of file llvm/lib/Transforms/IPO/ArgumentPromotion.cpp

  • MachineBasicBlock * tryToSplitRestore (MachineBasicBlock * MBB, ArrayRef<MachineBasicBlock *> DirtyPreds, const TargetInstrInfo * TII)

    This function splits the restore point and returns new restore point/BB.

    DirtyPreds: Predessors of

    that are ReachableByDirty

    Decision has been made to split the restore point.

    old restore point:

    new restore point:

    This function makes the necessary block layout changes so that

    1.

    points to

    unconditionally

    2. All dirtyPreds that previously pointed to

    point to

    Defined at line 489 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • void reportCmdLineWarning (const Twine & Message)

    Defined at line 490 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • StringRef getPatFragPredicateEnumName (const Record * R)

    Defined at line 490 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • void doPrint (StringRef Name, const object::Archive::Child & C)

    Implements the 'p' operation. This function traverses the archive

    looking for members that match the path list.

    Defined at line 490 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • const void * lto_codegen_compile_optimized (lto_code_gen_t cg, size_t * length)

    Generates code for the optimized merged module into one native object file.

    It will not run any IR optimizations on the merged module.

    On success returns a pointer to a generated mach-o/ELF buffer and length set

    to the buffer size. The buffer is owned by the lto_code_gen_t and will be

    freed when lto_codegen_dispose() is called, or

    lto_codegen_compile_optimized() is called again. On failure, returns NULL

    (check lto_get_error_message() for details).

    Defined at line 490 of file llvm/tools/lto/lto.cpp

  • basic_string computeWebAssemblyDataLayout (const Triple & TT)

    Defined at line 490 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • bool hasPHICycleDFS (unsigned int Reg, const int & PhiDeps, int & Visited, int & RecStack)

    Depth-first search to detect cycles among PHI dependencies.

    Returns true if a cycle is detected within the PHI-only subgraph.

    Defined at line 490 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • int ParseBinOpRHS (int ExprPrec, int LHS)

    binoprhs

    ::= ('+' unary)*

    Defined at line 490 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • VPRegionBlock * createReplicateRegion (VPReplicateRecipe * PredRecipe, VPlan & Plan)

    Defined at line 490 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • SDNode * FindCallSeqStart (SDNode * N, unsigned int & NestLevel, unsigned int & MaxNest, const TargetInstrInfo * TII)

    FindCallSeqStart - Starting from the (lowered) CALLSEQ_END node, locate

    the corresponding (lowered) CALLSEQ_BEGIN node.

    NestLevel and MaxNested are used in recursion to indcate the current level

    of nesting of CALLSEQ_BEGIN and CALLSEQ_END pairs, as well as the maximum

    level seen so far.

    TODO: It would be better to give CALLSEQ_END an explicit operand to point

    to the corresponding CALLSEQ_BEGIN to avoid needing to search for it.

    Defined at line 490 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • std::optional<FreeFnsTy> getFreeFunctionDataForFunction (const Function * Callee, const LibFunc TLIFn)

    clang-format on

    Defined at line 491 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void updateKillStatus (MachineInstr * LoadInst, MachineInstr * StoreInst)

    Defined at line 492 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • bool removeRedundantDbgInstrsUsingForwardScan (BasicBlock * BB)

    Remove redundant dbg.value instructions using a forward scan. This can

    remove a dbg.value instruction that is redundant due to indicating that a

    variable has the same value as already being indicated by an earlier

    dbg.value.

    ForwardScan strategy:

    ---------------------

    Given two identical dbg.value instructions, separated by a block of

    instructions that isn't describing the same variable, like this

    dbg.value X1, "x", FragmentX1 (**)

    <block

    of instructions, none being "dbg.value ..., "x", ...">

    dbg.value X1, "x", FragmentX1 (*)

    then the instruction marked with (*) can be removed. Variable "x" is already

    described as being mapped to the SSA value X1.

    Possible improvements:

    - Keep track of non-overlapping fragments.

    Defined at line 492 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • Error handleFileConversionToGSYM (StringRef Filename, const std::string & OutFile, OutputAggregator & Out)

    Defined at line 493 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • DWARFDie toDie (const DWARFDebugNames::Entry & Entry, DWARFContext & DICtx)

    Defined at line 493 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void listDependentLibraries ()

    Defined at line 493 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • void LLVMAppendModuleInlineAsm (LLVMModuleRef M, const char * Asm, size_t Len)

    Append inline assembly to a module.

    Defined at line 494 of file llvm/lib/IR/Core.cpp

  • void reportCmdLineError (const Twine & Message)

    Defined at line 494 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool isMod (const BTF::CommonType * Type)

    Defined at line 494 of file llvm/lib/DebugInfo/BTF/BTFParser.cpp

  • GenericValue lle_X_memset (FunctionType * FT, ArrayRef Args)

    Defined at line 494 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • optional getFunctionalOpcodeForVP (Intrinsic::ID ID)

    Equivalent non-predicated opcode

    Defined at line 494 of file llvm/lib/IR/IntrinsicInst.cpp

  • Instruction * createTileStore (Instruction * TileDef, Value * Ptr)

    Defined at line 494 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • bool firstRealType (Type * Next, SmallVectorImpl<Type *> & SubTypes, SmallVectorImpl<unsigned int> & Path)

    Find the first non-empty, scalar-like type in Next and setup the iterator

    components.

    Assuming Next is an aggregate of some kind, this function will traverse the

    tree from left to right (i.e. depth-first) looking for the first

    non-aggregate type which will play a role in function return.

    For example, if Next was {[0 x i64], {{}, i32, {}}, i32} then we would setup

    Path as [1, 1] and SubTypes as [Next, {{}, i32, {}}] to represent the first

    i32 in that type.

    Defined at line 494 of file llvm/lib/CodeGen/Analysis.cpp

  • StringRef getArgAttrEnumName (ArgAttrKind Kind)

    Returns the name of the IR enum for argument attribute kind

    Defined at line 494 of file llvm/utils/TableGen/Basic/IntrinsicEmitter.cpp

  • void removeIntrinsicUsers (AllocaInst * AI)

    Defined at line 494 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp

  • ShadowMapping getShadowMapping (const Triple & TargetTriple, int LongSize, bool IsKasan)

    Defined at line 494 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • bool isSelect01 (const APInt & C1I, const APInt & C2I)

    Defined at line 495 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • Expected<OptimizationLevel> parseOptLevelParam (StringRef S)

    Defined at line 495 of file llvm/lib/Passes/PassBuilder.cpp

  • int priorNonDebug (int I, int Beg)

    Decrement this iterator until reaching the top or a non-debug instr.

    Defined at line 495 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • void createMemprofHistogramFlagVar (Module & M)

    Set MemprofHistogramFlag as a Global variable in IR. This makes it accessible

    to the runtime, changing shadow count behavior.

    Defined at line 495 of file llvm/lib/Transforms/Instrumentation/MemProfInstrumentation.cpp

  • void collectStatsRecursive (DWARFDie Die, basic_string FnPrefix, basic_string VarPrefix, uint64_t BytesInScope, uint32_t InlineDepth, StringMap<PerFunctionStats> & FnStatMap, GlobalStats & GlobalStats, LocationStats & LocStats, FunctionDIECUTyMap & AbstractOriginFnCUs, AbstractOriginVarsTyMap & GlobalAbstractOriginFnInfo, AbstractOriginVarsTyMap & LocalAbstractOriginFnInfo, FunctionsWithAbstractOriginTy & FnsWithAbstractOriginToBeProcessed, AbstractOriginVarsTy * AbstractOriginVarsPtr)

    Recursively collect debug info quality metrics.

    Defined at line 495 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • Decomposition decompose (Value * V, SmallVectorImpl<ConditionTy> & Preconditions, bool IsSigned, const DataLayout & DL)

    Decomposes

    into a constant offset + list of pairs { Coefficient,

    Variable } where Coefficient * Variable. The sum of the constant offset and

    pairs equals

    Defined at line 495 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • template <, , >
    BlockIsFilledWithMatcherP3<Layout_type, BlockIndex_type, Byte_type> BlockIsFilledWith (Layout_type gmock_p0, BlockIndex_type gmock_p1, Byte_type gmock_p2)

    Defined at line 496 of file llvm/unittests/DebugInfo/MSF/MappedBlockStreamTest.cpp

  • basic_string getSummaryAttributes (GlobalValueSummary * GVS)

    Get string representation of function instruction count and flags.

    Defined at line 496 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • bool shouldSkipSectionFirstByte (SectionRef & Section)

    Determine if we should skip the first byte of the section content

    Defined at line 496 of file llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  • void printLLVMName (raw_ostream & OS, StringRef Name, PrefixType Prefix)

    Turn the specified name into an 'LLVM name', which is either prefixed with %

    (if the string only contains simple characters) or is surrounded with ""'s

    (if it has special chars in it). Print it out.

    Defined at line 496 of file llvm/lib/IR/AsmWriter.cpp

  • bool cannotHoistCondition (const PredicateMatcher & Condition, const Matcher & M)

    Check if the Condition, which is a predicate of M, cannot be hoisted outside

    of (i.e., checked before) M.

    Defined at line 497 of file llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp

  • bool hasSecRelSymbolRef (const MCExpr * Expr)

    Defined at line 497 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

  • const char * getTargetFlagName (const TargetInstrInfo * TII, unsigned int TF)

    Defined at line 497 of file llvm/lib/CodeGen/MachineOperand.cpp

  • void scanInlinedCode (Instruction * Start, Instruction * End, int & Calls, int & Seen)

    Defined at line 497 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • bool hasPrefix (StringRef SectionName, StringRef Prefix)

    Defined at line 498 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • const char * LLVMGetModuleInlineAsm (LLVMModuleRef M, size_t * Len)

    Get inline assembly for a module.

    Defined at line 498 of file llvm/lib/IR/Core.cpp

  • void XXH3_accumulate (uint64_t * acc, const uint8_t * input, const uint8_t * secret, size_t nbStripes)

    Defined at line 498 of file llvm/lib/Support/xxhash.cpp

  • GenericValue executeFCMP_OGT (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 498 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • bool collectConstantAbsSteps (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<uint64_t> & Steps, uint64_t ElementSize)

    Collects the absolute values of constant steps for all induction variables.

    Returns true if we can prove that all step recurrences are constants and

    is divisible by

    Each step recurrence is stored in

    after divided by

    Defined at line 498 of file llvm/lib/Analysis/Delinearization.cpp

  • AttributeEncoding sentinelAttrEnc ()

    Defined at line 499 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  • void propagateCallAttrsFromCallee (CallInst * Call, Function * Callee)

    Defined at line 499 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • bool runImpl (Function & F, const TargetLibraryInfo & TLI, DominatorTree * DT)

    Defined at line 499 of file llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp

  • void warnOnNoMatchForSections ()

    Defined at line 499 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void emitEnums (raw_ostream & OS, const RecordKeeper & Records)

    ===----------------------------------------------------------------------===//

    Emit enums for the column fields across all the instruction maps.

    ===----------------------------------------------------------------------===//

    Defined at line 499 of file llvm/utils/TableGen/CodeGenMapTable.cpp

  • Value * simplifyX86pmulh (IntrinsicInst & II, InstCombiner::BuilderTy & Builder, bool IsSigned, bool IsRounding)

    Defined at line 499 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • lto_bool_t lto_codegen_compile_to_file (lto_code_gen_t cg, const char ** name)

    Generates code for all added modules into one native object file.

    This calls lto_codegen_optimize then lto_codegen_compile_optimized (instead

    of returning a generated mach-o/ELF buffer, it writes to a file).

    The name of the file is written to name. Returns true on error.

    Defined at line 500 of file llvm/tools/lto/lto.cpp

  • bool isFixupTargetValid (const MCValue & Target)

    Defined at line 500 of file llvm/lib/MC/MachObjectWriter.cpp

  • void warn (Twine Message, StringRef Whence, StringRef Hint)

    Defined at line 500 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void dumpArchive (const Archive * Arc)

    Defined at line 500 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • void calculateSEHStateNumbers (WinEHFuncInfo & FuncInfo, const Instruction * FirstNonPHI, int ParentState)

    Starting from a EHPad, Backward walk through control-flow graph

    to produce two primary outputs:

    FuncInfo.EHPadStateMap[] and FuncInfo.SEHUnwindMap[]

    Defined at line 500 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • void getReqFeatures (int & FeaturesSet, int & AnyOfFeatureSets, ArrayRef<const Record *> ReqFeatures)

    Defined at line 501 of file llvm/utils/TableGen/CompressInstEmitter.cpp

  • bool isNonASCII (char c)

    Defined at line 502 of file llvm/lib/Support/SourceMgr.cpp

  • void LLVMOrcDisposeCSymbolFlagsMap (LLVMOrcCSymbolFlagsMapPairs Pairs)

    Disposes of the passed LLVMOrcCSymbolFlagsMap.

    Does not release the entries themselves.

    Defined at line 502 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void initializeMIR2VecVocabLegacyAnalysisPassOnce (PassRegistry & Registry)

    Defined at line 502 of file llvm/lib/CodeGen/MIR2Vec.cpp

  • void printMode (unsigned int mode)

    Utility function for printing out the file mode when the 't' operation is in

    verbose mode.

    Defined at line 502 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void emitFileEntry (raw_ostream & OS, const DWARFYAML::File & File)

    Defined at line 502 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • bool isGCValue (const Value * V, SelectionDAGBuilder & Builder)

    Return true if value V represents the GC value. The behavior is conservative

    in case it is not sure that value is not GC the function returns true.

    Defined at line 502 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • basic_string computeVEDataLayout (const Triple & T)

    Defined at line 502 of file llvm/lib/TargetParser/TargetDataLayout.cpp

  • bool isSentinel (const DWARFDebugNames::AttributeEncoding & AE)

    Defined at line 503 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  • Cursor maybeLexExternalSymbol (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 503 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void RunSafelyOnThread_Dispatch (void * UserData)

    Defined at line 503 of file llvm/lib/Support/CrashRecoveryContext.cpp

  • unsigned int getELFSectionType (StringRef Name, SectionKind K)

    Defined at line 503 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • Error convertFileToGSYM (OutputAggregator & Out)

    Defined at line 503 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • Value * foldLogOpOfMaskedICmpsAsymmetric (Value * LHS, Value * RHS, bool IsAnd, Value * A, Value * B, Value * C, Value * D, Value * E, Predicate PredL, Predicate PredR, unsigned int LHSMask, unsigned int RHSMask, InstCombiner::BuilderTy & Builder)

    Try to fold (icmp(A

    &

    B) ==/!= 0)

    &

    /| (icmp(A

    &

    D) ==/!= E) into a single

    (icmp(A

    &

    X) ==/!= Y), where the left-hand side and the right hand side

    aren't of the common mask pattern type.

    Also used for logical and/or, must be poison safe.

    Defined at line 503 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool doCallSiteSplitting (Function & F, TargetLibraryInfo & TLI, TargetTransformInfo & TTI, DominatorTree & DT)

    Defined at line 503 of file llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp

  • const MDNode * getLeastCommonType (const MDNode * A, const MDNode * B)

    Defined at line 503 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

  • void getCopyToParts (SelectionDAG & DAG, const SDLoc & DL, SDValue Val, SDValue * Parts, unsigned int NumParts, MVT PartVT, const Value * V, std::optional<CallingConv::ID> CallConv, NodeType ExtendKind)

    getCopyToParts - Create a series of nodes that contain the specified value

    split into legal parts. If the parts contain more bits than Val, then, for

    integers, ExtendKind can be used to specify how to generate the extra bits.

    Defined at line 503 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • void addCallToCallGraph (CallGraph * CG, CallInst * Call, Function * Callee)

    Defined at line 504 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • void addLocIfNotPresent (SmallVectorImpl<const DILocation *> & Locs, const DILocation * Loc)

    Defined at line 504 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • bool dominates (InstrPosIndexes & PosIndexes, const MachineInstr & A, const MachineInstr & B)

    Defined at line 504 of file llvm/lib/CodeGen/RegAllocFast.cpp

  • const MCExpr * buildSymbolDiff (MCObjectStreamer & OS, const MCSymbol * A, const MCSymbol * B, SMLoc Loc)

    Defined at line 504 of file llvm/lib/MC/MCObjectStreamer.cpp

  • bool contains (Value * Expr, Value * V)

    Defined at line 504 of file llvm/lib/IR/Value.cpp

  • void createMemMoveLoopUnknownSize (Instruction * InsertBefore, Value * SrcAddr, Value * DstAddr, Value * CopyLen, Align SrcAlign, Align DstAlign, bool SrcIsVolatile, bool DstIsVolatile, const TargetTransformInfo & TTI)

    Lower memmove to IR. memmove is required to correctly copy overlapping memory

    regions; therefore, it has to check the relative positions of the source and

    destination pointers and choose the copy direction accordingly.

    The code below is an IR rendition of this C function:

    void* memmove(void* dst, const void* src, size_t n) {

    unsigned char* d = dst;

    const unsigned char* s = src;

    if (s

    <

    d) {

    // copy backwards

    while (n--) {

    d[n] = s[n];

    }

    } else {

    // copy forward

    for (size_t i = 0; i

    <

    n; ++i) {

    d[i] = s[i];

    }

    }

    return dst;

    }

    If the TargetTransformInfo specifies a wider MemcpyLoopLoweringType, it is

    used for the memory accesses in the loops. Then, additional loops with

    byte-wise accesses are added for the remaining bytes.

    Defined at line 504 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • basic_string getNodeVisualName (GlobalValue::GUID Id)

    Defined at line 505 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • void lto_set_debug_options (const char *const * options, int number)

    Parses options immediately, making them available as early as possible. For

    example during executing codegen::InitTargetOptionsFromCodeGenFlags. Since

    parsing shud only happen once, only one of lto_codegen_debug_options or

    lto_set_debug_options should be called.

    This function takes one or more options separated by spaces.

    Warning: passing file paths through this function may confuse the argument

    parser if the paths contain spaces.

    Defined at line 505 of file llvm/tools/lto/lto.cpp

  • LLVMValueRef LLVMGetInlineAsm (LLVMTypeRef Ty, const char * AsmString, size_t AsmStringSize, const char * Constraints, size_t ConstraintsSize, LLVMBool HasSideEffects, LLVMBool IsAlignStack,  Dialect, LLVMBool CanThrow)

    Create the specified uniqued inline asm string.

    Defined at line 504 of file llvm/lib/IR/Core.cpp

  • bool isPCRel32Branch (const MCInst & MI, const MCInstrInfo & MCII)

    Defined at line 505 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp

  • Metadata * stripLoopMDLoc (const SmallPtrSetImpl<Metadata *> & AllDILocation, const SmallPtrSetImpl<Metadata *> & DIReachable, Metadata * MD)

    Defined at line 505 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMOrcSymbolStringPoolEntryRef LLVMOrcMaterializationResponsibilityGetInitializerSymbol (LLVMOrcMaterializationResponsibilityRef MR)

    Returns the initialization pseudo-symbol, if any. This symbol will also

    be present in the SymbolFlagsMap for this MaterializationResponsibility

    object.

    The returned symbol is not retained over any mutating operation of the

    MaterializationResponsbility or beyond the lifetime thereof.

    Defined at line 506 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • GenericValue lle_X_memcpy (FunctionType * FT, ArrayRef Args)

    Defined at line 506 of file llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp

  • bool printMod (const BTFParser & BTF, const BTF::CommonType * Type, raw_ostream & Stream)

    Defined at line 506 of file llvm/lib/DebugInfo/BTF/BTFParser.cpp

  • void resolvePrevailingInIndex (ModuleSummaryIndex & Index, int & ResolvedODR, const int & GUIDPreservedSymbols, const int & PrevailingCopy)

    Resolve prevailing symbols. Record resolutions in the

    map

    for caching, and in the

    for application during the ThinLTO

    backends. This is needed for correctness for exported symbols (ensure

    at least one copy kept) and a compile-time optimization (to drop duplicate

    copies when possible).

    Defined at line 506 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • Abbrev sentinelAbbrev ()

    Defined at line 507 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  • uint64_t XXH3_mix2Accs (const uint64_t * acc, const uint8_t * secret)

    Defined at line 507 of file llvm/lib/Support/xxhash.cpp

  • bool allConstant (ArrayRef VL)

    Defined at line 507 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void printCFIRegister (unsigned int DwarfReg, raw_ostream & OS, const TargetRegisterInfo * TRI)

    Defined at line 507 of file llvm/lib/CodeGen/MachineOperand.cpp

  • Error treeMerge (xmlNodePtr OriginalRoot, xmlNodePtr AdditionalRoot)

    Recursively merge the two given manifest trees, depending on which elements

    are of a mergeable type, and choose namespaces according to which have

    higher priority.

    Defined at line 507 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • void collectMemAccessInfo (Function & F, const TargetLibraryInfo & TLI, SmallVectorImpl<std::pair<Instruction *, MemoryLocation>> & MemoryAccesses, SmallSetVector<const MDNode *, 8> & TBAAMetadata, SmallVectorImpl<Value *> & MemTypeResetInsts)

    Collect all loads and stores, and for what TBAA nodes we need to generate

    type descriptors.

    Defined at line 507 of file llvm/lib/Transforms/Instrumentation/TypeSanitizer.cpp

  • Value * rewriteGEPAsOffset (Value * Start, Value * Base, GEPNoWrapFlags NW, const DataLayout & DL, SetVector<Value *> & Explored, InstCombiner & IC)

    Returns a re-written value of Start as an indexed GEP using Base as a

    pointer.

    Defined at line 507 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void shortenAssignment (Instruction * Inst, Value * OriginalDest, uint64_t OldOffsetInBits, uint64_t OldSizeInBits, uint64_t NewSizeInBits, bool IsOverwriteEnd)

    Defined at line 508 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • basic_string getNodeVisualName (const ValueInfo & VI)

    Defined at line 509 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • void warn (Error E, StringRef Whence)

    Defined at line 509 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void createMemprofDefaultOptionsVar (Module & M)

    Defined at line 509 of file llvm/lib/Transforms/Instrumentation/MemProfInstrumentation.cpp

  • void addInitialSkeleton (VPlan & Plan, Type * InductionTy, DebugLoc IVDL, PredicatedScalarEvolution & PSE, Loop * TheLoop)

    Defined at line 509 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • int dl_iterate_phdr_cb (dl_phdr_info * info, size_t size, void * arg)

    Defined at line 510 of file llvm/lib/Support/Unix/Signals.inc

  • bool shouldPeelLastIteration (Loop & L, CmpPredicate Pred, const SCEVAddRecExpr * LeftAR, const SCEV * RightSCEV, ScalarEvolution & SE, const TargetTransformInfo & TTI)

    Returns true if the last iteration can be peeled off and the condition (Pred

    LeftAR, RightSCEV) is known at the last iteration and the inverse condition

    is known at the second-to-last.

    Defined at line 510 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • void writeExtendedOpcode (const DWARFYAML::LineTableOpcode & Op, uint8_t AddrSize, bool IsLittleEndian, raw_ostream & OS)

    Defined at line 510 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • bool findArgParts (Argument * Arg, const DataLayout & DL, AAResults & AAR, unsigned int MaxElements, bool IsRecursive, SmallVectorImpl<OffsetAndArgPart> & ArgPartsVec, FunctionAnalysisManager & FAM)

    Determine that this argument is safe to promote, and find the argument

    parts it can be promoted into.

    Defined at line 510 of file llvm/lib/Transforms/IPO/ArgumentPromotion.cpp

  • bool isSentinel (const DWARFDebugNames::Abbrev & Abbr)

    Defined at line 511 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  • void printImportTables (const COFFObjectFile * Obj)

    Prints import tables. The import table is a table containing the list of

    DLL name and symbol names which will be linked by the loader.

    Defined at line 511 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • Cursor maybeLexMCSymbol (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 511 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void computeKnownBitsMul (const Value * Op0, const Value * Op1, bool NSW, bool NUW, const APInt & DemandedElts, KnownBits & Known, KnownBits & Known2, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 511 of file llvm/lib/Analysis/ValueTracking.cpp

  • uint64_t XXH3_mergeAccs (const uint64_t * acc, const uint8_t * key, uint64_t start)

    Defined at line 512 of file llvm/lib/Support/xxhash.cpp

  • void doDisplayTable (StringRef Name, const object::Archive::Child & C)

    Implement the 't' operation. This function prints out just

    the file names of each of the members. However, if verbose mode is requested

    ('v' modifier) then the file type, permission mode, user, group, size, and

    modification time are also printed.

    Defined at line 512 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • optional getFunctionalIntrinsicIDForVP (Intrinsic::ID ID)

    Equivalent non-predicated intrinsic ID

    Defined at line 513 of file llvm/lib/IR/IntrinsicInst.cpp

  • basic_string getNodeLabel (const ValueInfo & VI, GlobalValueSummary * GVS)

    Defined at line 513 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • LLVMOrcSymbolStringPoolEntryRef * LLVMOrcMaterializationResponsibilityGetRequestedSymbols (LLVMOrcMaterializationResponsibilityRef MR, size_t * NumSymbols)

    Returns the names of any symbols covered by this

    MaterializationResponsibility object that have queries pending. This

    information can be used to return responsibility for unrequested symbols

    back to the JITDylib via the delegate method.

    Defined at line 513 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool doesNotRequireEntrySafepointBefore (CallBase * Call)

    Returns true if an entry safepoint is not required before this callsite in

    the caller function.

    Defined at line 513 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp

  • void replaceWithTileLoad (Use & U, Value * Ptr, bool IsPHI)

    Defined at line 513 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • uint32_t ARM64CountOfUnwindCodes (ArrayRef Insns)

    Defined at line 513 of file llvm/lib/MC/MCWin64EH.cpp

  • void getDies (DWARFContext & DICtx, const DWARFDebugNames & Accel, StringRef Name, SmallVectorImpl<DWARFDie> & Dies)

    Defined at line 514 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void emitDwarfSetLineAddr (MCObjectStreamer & OS, MCDwarfLineTableParams Params, int64_t LineDelta, const MCSymbol * Label, int PointerSize)

    Defined at line 514 of file llvm/lib/MC/MCObjectStreamer.cpp

  • bool isSplat (ArrayRef VL)

    Defined at line 515 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void unwrapLoop (BlockFrequencyInfoImplBase & BFI, LoopData & Loop)

    Unwrap a loop package.

    Visits all the members of a loop, adjusting their BlockData according to

    the loop's pseudo-node.

    Defined at line 515 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • void printMachOCPUOnly ()

    Defined at line 515 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • int nextIfDebug (int I, int End)

    If this iterator is a debug value, increment until reaching the End or a

    non-debug instruction.

    Defined at line 516 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • const Target * getTarget (const ObjectFile * Obj)

    Defined at line 516 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool hasPHICycle (const MachineBasicBlock * LoopHeader, const MachineRegisterInfo & MRI)

    Defined at line 516 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • void initializeLCSSAWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 517 of file llvm/lib/Transforms/Utils/LCSSA.cpp

  • void exitWithError (Twine Message, StringRef Whence, StringRef Hint)

    Defined at line 517 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void lto_codegen_debug_options (lto_code_gen_t cg, const char * )

    Sets options to help debug codegen bugs. Since parsing shud only happen once,

    only one of lto_codegen_debug_options or lto_set_debug_options

    should be called.

    This function takes one or more options separated by spaces.

    Warning: passing file paths through this function may confuse the argument

    parser if the paths contain spaces.

    Defined at line 517 of file llvm/tools/lto/lto.cpp

  • template <typename SCCT, typename PostorderSequenceT, typename SCCIndexMapT, typename ComputeSourceConnectedSetCallableT, typename ComputeTargetConnectedSetCallableT>
    iterator_range<typename PostorderSequenceT::iterator> updatePostorderSequenceForEdgeInsertion (SCCT & SourceSCC, SCCT & TargetSCC, PostorderSequenceT & SCCs, SCCIndexMapT & SCCIndices, ComputeSourceConnectedSetCallableT ComputeSourceConnectedSet, ComputeTargetConnectedSetCallableT ComputeTargetConnectedSet)

    Generic helper that updates a postorder sequence of SCCs for a potentially

    cycle-introducing edge insertion.

    A postorder sequence of SCCs of a directed graph has one fundamental

    property: all deges in the DAG of SCCs point "up" the sequence. That is,

    all edges in the SCC DAG point to prior SCCs in the sequence.

    This routine both updates a postorder sequence and uses that sequence to

    compute the set of SCCs connected into a cycle. It should only be called to

    insert a "downward" edge which will require changing the sequence to

    restore it to a postorder.

    When inserting an edge from an earlier SCC to a later SCC in some postorder

    sequence, all of the SCCs which may be impacted are in the closed range of

    those two within the postorder sequence. The algorithm used here to restore

    the state is as follows:

    1) Starting from the source SCC, construct a set of SCCs which reach the

    source SCC consisting of just the source SCC. Then scan toward the

    target SCC in postorder and for each SCC, if it has an edge to an SCC

    in the set, add it to the set. Otherwise, the source SCC is not

    a successor, move it in the postorder sequence to immediately before

    the source SCC, shifting the source SCC and all SCCs in the set one

    position toward the target SCC. Stop scanning after processing the

    target SCC.

    2) If the source SCC is now past the target SCC in the postorder sequence,

    and thus the new edge will flow toward the start, we are done.

    3) Otherwise, starting from the target SCC, walk all edges which reach an

    SCC between the source and the target, and add them to the set of

    connected SCCs, then recurse through them. Once a complete set of the

    SCCs the target connects to is known, hoist the remaining SCCs between

    the source and the target to be above the target. Note that there is no

    need to process the source SCC, it is already known to connect.

    4) At this point, all of the SCCs in the closed range between the source

    SCC and the target SCC in the postorder sequence are connected,

    including the target SCC and the source SCC. Inserting the edge from

    the source SCC to the target SCC will form a cycle out of precisely

    these SCCs. Thus we can merge all of the SCCs in this closed range into

    a single SCC.

    This process has various important properties:

    - Only mutates the SCCs when adding the edge actually changes the SCC

    structure.

    - Never mutates SCCs which are unaffected by the change.

    - Updates the postorder sequence to correctly satisfy the postorder

    constraint after the edge is inserted.

    - Only reorders SCCs in the closed postorder sequence from the source to

    the target, so easy to bound how much has changed even in the ordering.

    - Big-O is the number of edges in the closed postorder range of SCCs from

    source to target.

    This helper routine, in addition to updating the postorder sequence itself

    will also update a map from SCCs to indices within that sequence.

    The sequence and the map must operate on pointers to the SCC type.

    Two callbacks must be provided. The first computes the subset of SCCs in

    the postorder closed range from the source to the target which connect to

    the source SCC via some (transitive) set of edges. The second computes the

    subset of the same range which the target SCC connects to via some

    (transitive) set of edges. Both callbacks should populate the set argument

    provided.

    Defined at line 517 of file llvm/lib/Analysis/LazyCallGraph.cpp

  • void printLLVMName (raw_ostream & OS, const Value * V)

    Turn the specified name into an 'LLVM name', which is either prefixed with %

    (if the string only contains simple characters) or is surrounded with ""'s

    (if it has special chars in it). Print it out.

    Defined at line 518 of file llvm/lib/IR/AsmWriter.cpp

  • void splitProfileMapToTwo (const SampleProfileMap & ProfileMap, SampleProfileMap & ContextProfileMap, SampleProfileMap & NoContextProfileMap)

    Defined at line 518 of file llvm/lib/ProfileData/SampleProfWriter.cpp

  • void DumpEllipsisOrElidedLines (raw_ostream & OS, std::string & ElidedLines, unsigned int LabelWidth)

    To OS, print a vertical ellipsis (right-justified at LabelWidth) if it would

    occupy less lines than ElidedLines, but print ElidedLines otherwise. Either

    way, clear ElidedLines. Thus, if ElidedLines is empty, do nothing.

    Defined at line 518 of file llvm/utils/FileCheck/FileCheck.cpp

  • ArchType parseARMArch (StringRef ArchName)

    Defined at line 518 of file llvm/lib/TargetParser/Triple.cpp

  • void concatSubVector (Value ** Vec, ArrayRef<Instruction *> InVec, unsigned int VecElems, int & Builder)

    For VecElems = 64

    Invec[0] - |0|1|2 |3 | Vec[0] - |0|3|6|9 |

    Invec[1] - |4|5|6 |7 | => Vec[1] - |1|4|7|10|

    Invec[2] - |8|9|10|11| Vec[2] - |2|5|8|11|

    Defined at line 519 of file llvm/lib/Target/X86/X86InterleavedAccess.cpp

  • bool usedAsAddr (const MachineInstr & MI, Register Reg, const TargetInstrInfo * TII)

    Defined at line 519 of file llvm/lib/Target/X86/X86DomainReassignment.cpp

  • bool isLibCallInTailPosition (const CallLowering::ArgInfo & Result, MachineInstr & MI, const TargetInstrInfo & TII, MachineRegisterInfo & MRI)

    True if an instruction is in tail position in its caller. Intended for

    legalizing libcalls as tail calls when possible.

    Defined at line 519 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • void lowerStatepointMetaArgs (SmallVectorImpl<SDValue> & Ops, SmallVectorImpl<MachineMemOperand *> & MemRefs, SmallVectorImpl<SDValue> & GCPtrs, int & LowerAsVReg, SelectionDAGBuilder::StatepointLoweringInfo & SI, SelectionDAGBuilder & Builder)

    Lower deopt state and gc pointer arguments of the statepoint. The actual

    lowering is described in lowerIncomingStatepointValue. This function is

    responsible for lowering everything in the right position and playing some

    tricks to avoid redundant stack manipulation where possible. On

    completion, 'Ops' will contain ready to use operands for machine code

    statepoint. The chain nodes will have already been created and the DAG root

    will be set to the last value spilled (if any were).

    Defined at line 519 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • void printIRBlockReference (raw_ostream & OS, const BasicBlock & BB, ModuleSlotTracker & MST)

    Defined at line 520 of file llvm/lib/CodeGen/MachineOperand.cpp

  • uint64_t XXH3_hashLong_64b (const uint8_t * input, size_t len, const uint8_t * secret, size_t secretSize)

    Defined at line 520 of file llvm/lib/Support/xxhash.cpp

  • void InitializeModule ()

    ===----------------------------------------------------------------------===//

    Top-Level parsing and JIT Driver

    ===----------------------------------------------------------------------===//

    Defined at line 521 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • bool processAbsIntrinsic (IntrinsicInst * II, LazyValueInfo * LVI)

    See if

    .abs argument is alays positive/negative, and simplify.

    Notably, INT_MIN can belong to either range, regardless of the NSW,

    because it is negation-invariant.

    Defined at line 521 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • const char * getModRefStr (ModRefInfo MR)

    Defined at line 522 of file llvm/lib/IR/Attributes.cpp

  • void initializeStackColoringLegacyPassOnce (PassRegistry & Registry)

    Defined at line 523 of file llvm/lib/CodeGen/StackColoring.cpp

  • bool nextRealType (SmallVectorImpl<Type *> & SubTypes, SmallVectorImpl<unsigned int> & Path)

    Set the iterator data-structures to the next non-empty, non-aggregate

    subtype.

    Defined at line 523 of file llvm/lib/CodeGen/Analysis.cpp

  • void generateCaseForVersionedClauses (ArrayRef VerClauses, raw_ostream & OS, const DirectiveLanguage & DirLang, StringSet<> & Cases)

    Defined at line 523 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • void filterByAccelName (ArrayRef Names, DWARFContext & DICtx, raw_ostream & OS, function GetNameForDWARFReg)

    Print only DIEs that have a certain name.

    Defined at line 523 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void printShuffleMask (raw_ostream & Out, Type * Ty, ArrayRef Mask)

    Defined at line 523 of file llvm/lib/IR/AsmWriter.cpp

  • bool checkHoistValue (Value * V, Instruction * InsertPoint, DominatorTree & DT, DenseSet<Instruction *> & Unhoistables, DenseSet<Instruction *> * HoistStops, DenseMap<Instruction *, bool> & Visited)

    Return true if V is already hoisted or can be hoisted (along with its

    operands) above the insert point. When it returns true and HoistStops is

    non-null, the instructions to stop hoisting at through the use-def chains are

    inserted into HoistStops.

    Defined at line 523 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • const char * LLVMGetInlineAsmAsmString (LLVMValueRef InlineAsmVal, size_t * Len)

    Get the template string used for an inline assembly snippet

    Defined at line 524 of file llvm/lib/IR/Core.cpp

  • void checkArchDuplicates (ArrayRef<Slice> Slices)

    Defined at line 524 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • bool canDecodeBlob (unsigned int Code, unsigned int BlockID)

    Defined at line 525 of file llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp

  • bool isIntrinsic (const CallBase & Call, Intrinsic::ID ID)

    Defined at line 525 of file llvm/lib/Target/X86/X86WinEHState.cpp

  • unsigned int CountTerminators (MachineBasicBlock * MBB, int & I)

    CountTerminators - Count the number of terminators in the given

    block and set I to the position of the first non-terminator, if there

    is one, or MBB->end() otherwise.

    Defined at line 525 of file llvm/lib/CodeGen/BranchFolding.cpp

  • Value * threadCmpOverPHI (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    In the case of a comparison with a PHI instruction, try to simplify the

    comparison by seeing whether comparing with all of the incoming phi values

    yields the same result every time. If so returns the common result,

    otherwise returns null.

    Defined at line 525 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void initializeScavengerTestPassOnce (PassRegistry & Registry)

    Defined at line 526 of file llvm/lib/CodeGen/RegisterScavenging.cpp

  • void dumpInput (StringRef File)

    Defined at line 526 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp

  • bool checkNumberingAndReplaceCommutative (const DenseMap<Value *, unsigned int> & SourceValueToNumberMapping, DenseMap<unsigned int, DenseSet<unsigned int>> & CurrentSrcTgtNumberMapping, ArrayRef<Value *> & SourceOperands, DenseSet<unsigned int> & TargetValueNumbers)

    Determine if one or more of the assigned global value numbers for the

    operands in

    is in the current mapping set for operand

    numbers in

    The set of possible corresponding global

    value numbers are replaced with the most recent version of compatible

    values.

    Parameters

    SourceValueToNumberMapping [in] - The mapping of a Value to global value number for the source IRInstructionCandidate.
    CurrentSrcTgtNumberMapping [in,out] - The current mapping of source IRSimilarityCandidate global value numbers to a set of possible numbers in the target.
    SourceOperands [in] - The operands in the original IRSimilarityCandidate in the current instruction.
    TargetValueNumbers [in] - The global value numbers of the operands in the corresponding Instruction in the other IRSimilarityCandidate.

    Defined at line 526 of file llvm/lib/Analysis/IRSimilarityIdentifier.cpp

  • int dumpSymtab (int argc, char ** argv)

    Defined at line 526 of file llvm/tools/llvm-lto2/llvm-lto2.cpp

  • void initializeMachineCopyPropagationLegacyPassOnce (PassRegistry & Registry)

    Defined at line 527 of file llvm/lib/CodeGen/MachineCopyPropagation.cpp

  • const BTF::CommonType * skipModsAndTypedefs (const BTFParser & BTF, const BTF::CommonType * Type)

    Defined at line 527 of file llvm/lib/DebugInfo/BTF/BTFParser.cpp

  • Value * getStackGuard (const TargetLoweringBase * TLI, Module * M, int & B, bool * SupportsSelectionDAGSP)

    Create a stack guard loading and populate whether SelectionDAG SSP is

    supported.

    Defined at line 527 of file llvm/lib/CodeGen/StackProtector.cpp

  • void lto_codegen_debug_options_array (lto_code_gen_t cg, const char *const * , int number)

    Same as the previous function, but takes every option separately through an

    array.

    Defined at line 528 of file llvm/tools/lto/lto.cpp

  • void exitWithError (Error E, StringRef Whence)

    Defined at line 528 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void initializeComplexDeinterleavingLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 529 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • void LLVMOrcDisposeSymbols (LLVMOrcSymbolStringPoolEntryRef * Symbols)

    Disposes of the passed LLVMOrcSymbolStringPoolEntryRef* .

    Does not release the symbols themselves.

    Defined at line 530 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool isSehScopeEnd (const CallBase & Call)

    Defined at line 530 of file llvm/lib/Target/X86/X86WinEHState.cpp

  • Value * findOutputMapping (DenseMap OutputMappings, Value * Input)

    Check the

    structure for value

    if it exists

    it has been used as an output for outlining, and has been renamed, and we

    return the new value, otherwise, we return the same value.

    Parameters

    OutputMappings [in] - The mapping of values to their renamed value after being used as an output for an outlined region.
    Input [in] - The value to find the remapped value of, if it exists.

    Returns

    The remapped value if it has been renamed, and the same value if has

    not.

    Defined at line 530 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void HandleDefinition ()

    Defined at line 530 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void defineExternalNode (raw_ostream & OS, const char * Pfx, const ValueInfo & VI, GlobalValue::GUID Id)

    Write definition of external node, which doesn't have any

    specific module associated with it. Typically this is function

    or variable defined in native object or library.

    Defined at line 530 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • bool useClaimRuntimeCall (Module & M)

    Should we use objc_claimAutoreleasedReturnValue?

    Defined at line 530 of file llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp

  • unsigned int getELFSectionFlags (SectionKind K, const Triple & T)

    Defined at line 530 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • void doLookup (GsymReader & Gsym, uint64_t Addr, raw_ostream & OS)

    Defined at line 530 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • GlobalVariable * SRAGlobal (GlobalVariable * GV, const DataLayout & DL)

    Perform scalar replacement of aggregates on the specified global variable.

    This opens the door for other optimizations by exposing the behavior of the

    program in a more fine-grained way. We have determined that this

    transformation is safe already. We return the first global variable we

    insert so that the caller can reprocess it.

    Defined at line 530 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool doesVPHaveNoFunctionalEquivalent (Intrinsic::ID ID)

    Defined at line 531 of file llvm/lib/IR/IntrinsicInst.cpp

  • Expected isCoverageMappingDummy (uint64_t Hash, StringRef Mapping)

    Check if the mapping data is a dummy, i.e. is emitted for an unused function.

    Defined at line 532 of file llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  • bool checkMachOAndArchFlags (ObjectFile * O, StringRef Filename)

    Checks to see if the

    ObjectFile is a Mach-O file and if it is and there

    is a list of architecture flags specified then check to make sure this

    Mach-O file is one of those architectures or all architectures was

    specificed. If not then an error is generated and this routine returns

    false. Else it returns true.

    Defined at line 532 of file llvm/tools/llvm-size/llvm-size.cpp

  • Expected ExtractBlocks (BugDriver & BD, Expected<bool> (*)(BugDriver &, std::unique_ptr<Module>, std::unique_ptr<Module>) TestFn, std::vector<Function *> & MiscompiledFunctions)

    Given a reduced list of functions that still expose the bug, extract as many

    basic blocks from the region as possible without obscuring the bug.

    Defined at line 532 of file llvm/tools/bugpoint/Miscompilation.cpp

  • bool is64BitSymbolicFile (const SymbolicFile * SymObj)

    Defined at line 533 of file llvm/lib/Object/ArchiveWriter.cpp

  • const char * LLVMGetInlineAsmConstraintString (LLVMValueRef InlineAsmVal, size_t * Len)

    Get the raw constraint string for an inline assembly snippet

    Defined at line 533 of file llvm/lib/IR/Core.cpp

  • void LLVMSetModuleInlineAsm (LLVMModuleRef M, const char * Asm)

    Deprecated: Use LLVMSetModuleInlineAsm2 instead.

    Defined at line 490 of file llvm/lib/IR/Core.cpp

  • void initializeCodeGenPrepareLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 533 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • GenericValue executeFCMP_UEQ (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 533 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • MCRegister getMappedReg (Register Reg, int & RegMap)

    Return the physical register the specified virtual register might be mapped

    to.

    Defined at line 533 of file llvm/lib/CodeGen/TwoAddressInstructionPass.cpp

  • Expected<SmallVector<Slice, 2>> buildSlices (LLVMContext & LLVMCtx, ArrayRef<OwningBinary<Archive>> OutputBinaries)

    Defined at line 533 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • void rollbackRestoreSplit (MachineFunction & MF, MachineBasicBlock * NMBB, MachineBasicBlock * MBB, ArrayRef<MachineBasicBlock *> DirtyPreds, const TargetInstrInfo * TII)

    This function undoes the restore point split done earlier.

    DirtyPreds: All predecessors of

    that are ReachableByDirty.

    Restore point was split and the change needs to be unrolled. Make necessary

    changes to reset restore point from

    to

    Defined at line 533 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • void addReplicateRegions (VPlan & Plan)

    Defined at line 533 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • ConstantInt * getConstantInt (Value * V, const DataLayout & DL)

    Extract ConstantInt from value, looking through IntToPtr

    and PointerNullValue. Return NULL if value is not a constant int.

    Defined at line 533 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • const uint8_t * processExportNode (const uint8_t * Start, const uint8_t * CurrPtr, const uint8_t *const End, MachOYAML::ExportEntry & Entry)

    /brief processes a node from the export trie, and its children.

    To my knowledge there is no documentation of the encoded format of this data

    other than in the heads of the Apple linker engineers. To that end hopefully

    this comment and the implementation below can serve to light the way for

    anyone crazy enough to come down this path in the future.

    This function reads and preserves the trie structure of the export trie. To

    my knowledge there is no code anywhere else that reads the data and preserves

    the Trie. LD64 (sources available at opensource.apple.com) has a similar

    implementation that parses the export trie into a vector. That code as well

    as LLVM's libObject MachO implementation were the basis for this.

    The export trie is an encoded trie. The node serialization is a bit awkward.

    The below pseudo-code is the best description I've come up with for it.

    struct SerializedNode {

    ULEB128 TerminalSize;

    struct TerminalData {

    <

    -- This is only present if TerminalSize > 0

    ULEB128 Flags;

    ULEB128 Address;

    <

    -- Present if (! Flags

    &

    REEXPORT )

    ULEB128 Other;

    <

    -- Present if ( Flags

    &

    REEXPORT ||

    Flags

    &

    STUB_AND_RESOLVER )

    char[] ImportName;

    <

    -- Present if ( Flags

    &

    REEXPORT )

    }

    uint8_t ChildrenCount;

    Pair

    <char

    [], ULEB128> ChildNameOffsetPair[ChildrenCount];

    SerializedNode Children[ChildrenCount]

    }

    Terminal nodes are nodes that represent actual exports. They can appear

    anywhere in the tree other than at the root; they do not need to be leaf

    nodes. When reading the data out of the trie this routine reads it in-order,

    but it puts the child names and offsets directly into the child nodes. This

    results in looping over the children twice during serialization and

    de-serialization, but it makes the YAML representation more human readable.

    Below is an example of the graph from a "Hello World" executable:

    -------

    | '' |

    -------

    |

    -------

    | '_' |

    -------

    |

    |----------------------------------------|

    | |

    ------------------------ ---------------------

    | '_mh_execute_header' | | 'main' |

    | Flags: 0x00000000 | | Flags: 0x00000000 |

    | Addr: 0x00000000 | | Addr: 0x00001160 |

    ------------------------ ---------------------

    This graph represents the trie for the exports "__mh_execute_header" and

    "_main". In the graph only the "_main" and "__mh_execute_header" nodes are

    terminal.

    Defined at line 533 of file llvm/tools/obj2yaml/macho2yaml.cpp

  • bool upgradeX86IntrinsicFunction (Function * F, StringRef Name, Function *& NewFn)

    Defined at line 533 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool isSehScopeBegin (const CallBase & Call)

    Defined at line 534 of file llvm/lib/Target/X86/X86WinEHState.cpp

  • LLVMErrorRef LLVMOrcMaterializationResponsibilityNotifyResolved (LLVMOrcMaterializationResponsibilityRef MR, LLVMOrcCSymbolMapPairs Symbols, size_t NumPairs)

    Notifies the target JITDylib that the given symbols have been resolved.

    This will update the given symbols' addresses in the JITDylib, and notify

    any pending queries on the given symbols of their resolution. The given

    symbols must be ones covered by this MaterializationResponsibility

    instance. Individual calls to this method may resolve a subset of the

    symbols, but all symbols must have been resolved prior to calling emit.

    This method will return an error if any symbols being resolved have been

    moved to the error state due to the failure of a dependency. If this

    method returns an error then clients should log it and call

    LLVMOrcMaterializationResponsibilityFailMaterialization. If no dependencies

    have been registered for the symbols covered by this

    MaterializationResponsibility then this method is guaranteed to return

    LLVMErrorSuccess.

    Defined at line 534 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • Expected<const Target *> initAndLookupTarget (const Config & C, Module & Mod)

    Defined at line 534 of file llvm/lib/LTO/LTOBackend.cpp

  • Value * foldLogOpOfMaskedICmps (Value * LHS, Value * RHS, bool IsAnd, bool IsLogical, InstCombiner::BuilderTy & Builder, const SimplifyQuery & Q)

    Try to fold (icmp(A

    &

    B) ==/!= C)

    &

    /| (icmp(A

    &

    D) ==/!= E)

    into a single (icmp(A

    &

    X) ==/!= Y).

    Defined at line 534 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void DumpAnnotatedInput (raw_ostream & OS, const FileCheckRequest & Req, DumpInputFilterValue DumpInputFilter, unsigned int DumpInputContext, StringRef InputFileText, std::vector<InputAnnotation> & Annotations, unsigned int LabelWidth)

    Defined at line 534 of file llvm/utils/FileCheck/FileCheck.cpp

  • void initTMBuilder (TargetMachineBuilder & TMBuilder, const Triple & TheTriple)

    Initialize the TargetMachine builder for a given Triple

    Defined at line 535 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • void shuffleUseLists (Module & M, unsigned int SeedOffset)

    Defined at line 535 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  • void doPreallocation (TrivialMemoryManager & MemMgr)

    Defined at line 535 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • unsigned int lto_api_version ()

    Returns the runtime API version.

    Defined at line 536 of file llvm/tools/lto/lto.cpp

  • Constant * getKnownConstant (Value * Val, ConstantPreference Preference)

    getKnownConstant - Helper method to determine if we can thread over a

    terminator with the given value as its condition, and if so what value to

    use for that. What kind of value this is depends on whether we want an

    integer or a block address, but an undef is always accepted.

    Returns null if Val is null or not an appropriate constant.

    Defined at line 536 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • bool canEvaluateShiftedShift (unsigned int OuterShAmt, bool IsOuterShl, Instruction * InnerShift, InstCombinerImpl & IC, Instruction * CxtI)

    Return true if we can simplify two logical (either left or right) shifts

    that have constant shift amounts: OuterShift (InnerShift X, C1), C2.

    Defined at line 536 of file llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  • bool rewriteSingleStoreAlloca (AllocaInst * AI, AllocaInfo & Info, LargeBlockInfo & LBI, const DataLayout & DL, DominatorTree & DT, AssumptionCache * AC, SmallPtrSet<DbgVariableRecord *, 8> * DVRAssignsToDelete)

    Rewrite as many loads as possible given a single store.

    When there is only a single store, we can use the domtree to trivially

    replace all of the dominated loads with the stored value. Do so, and return

    true if this has successfully promoted the alloca entirely. If this returns

    false there were some loads which were not dominated by the single store

    and thus must be phi-ed with undef. We fall back to the standard alloca

    promotion algorithm in that case.

    Defined at line 536 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp

  • template <typename Range>
    void updateAlignments (Range & Slices, const int & Alignments)

    Defined at line 537 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • void stripComments (xmlNodePtr Root)

    Defined at line 537 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • unique_ptr ParseBinOpRHS (int ExprPrec, unique_ptr LHS)

    binoprhs

    ::= ('+' unary)*

    Defined at line 537 of file llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp

  • pair getTypedElementType (ResourceKind Kind, TargetExtType * Ty)

    Defined at line 537 of file llvm/lib/Analysis/DXILResource.cpp

  • void lto_codegen_set_should_internalize (lto_code_gen_t cg, lto_bool_t ShouldInternalize)

    Sets if we should run internalize pass during optimization and code

    generation.

    Defined at line 538 of file llvm/tools/lto/lto.cpp

  • void * findLastDebugDescriptorEntryPtr ()

    Defined at line 538 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • DITemplateValueParameter * createTemplateValueParameterHelper (LLVMContext & VMContext, unsigned int Tag, DIScope * Context, StringRef Name, DIType * Ty, bool IsDefault, Metadata * MD)

    Defined at line 538 of file llvm/lib/IR/DIBuilder.cpp

  • bool isIncomingOfPHI (Instruction * I)

    Defined at line 538 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • Expected convertOneChecksum (const DebugStringTableSubsectionRef & Strings, const FileChecksumEntry & CS)

    Defined at line 538 of file llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp

  • unsigned int getPredicates (int & PredicateMap, int & Predicates, const Record * Rec, StringRef Name)

    Defined at line 538 of file llvm/utils/TableGen/CompressInstEmitter.cpp

  • void computeUnlikelySuccessors (const BasicBlock * BB, Loop * L, SmallPtrSetImpl<const BasicBlock *> & UnlikelyBlocks)

    Compute the unlikely successors to the block BB in the loop L, specifically

    those that are unlikely because this is a loop, and add them to the

    UnlikelyBlocks set.

    Defined at line 538 of file llvm/lib/Analysis/BranchProbabilityInfo.cpp

  • bool isZero (Value * V, const DataLayout & DL, DominatorTree * DT, AssumptionCache * AC)

    Defined at line 539 of file llvm/lib/Analysis/Lint.cpp

  • template <typename Func>
    void forBothCUs (DwarfCompileUnit & CU, Func F)

    Defined at line 540 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • Loop * getTopMostExitingLoop (const BasicBlock * ExitBB, const LoopInfo & LI)

    Return the top-most loop containing ExitBB and having ExitBB as exiting block

    or the loop containing ExitBB, if there is no parent loop containing ExitBB

    as exiting block.

    Defined at line 540 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void DoInitialMatch (const SCEV * S, Loop * L, SmallVectorImpl<const SCEV *> & Good, SmallVectorImpl<const SCEV *> & Bad, ScalarEvolution & SE)

    Recursion helper for initialMatch.

    Defined at line 540 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void lto_codegen_set_should_embed_uselists (lto_code_gen_t cg, lto_bool_t ShouldEmbedUselists)

    Set whether to embed uselists in bitcode.

    Sets whether

    should embed uselists in

    output bitcode. This should be turned on for all -save-temps output.

    Defined at line 543 of file llvm/tools/lto/lto.cpp

  • LLVMErrorRef LLVMOrcMaterializationResponsibilityNotifyEmitted (LLVMOrcMaterializationResponsibilityRef MR, LLVMOrcCSymbolDependenceGroup * SymbolDepGroups, size_t NumSymbolDepGroups)

    Notifies the target JITDylib (and any pending queries on that JITDylib)

    that all symbols covered by this MaterializationResponsibility instance

    have been emitted.

    This function takes ownership of the symbols in the Dependencies struct.

    This allows the following pattern...

    LLVMOrcSymbolStringPoolEntryRef Names[] = {...};

    LLVMOrcCDependenceMapPair Dependence = {JD, {Names, sizeof(Names)}}

    LLVMOrcMaterializationResponsibilityAddDependencies(JD, Name,

    &Dependence

    ,

    1);

    ... without requiring cleanup of the elements of the Names array afterwards.

    The client is still responsible for deleting the Dependencies.Names arrays,

    and the Dependencies array itself.

    This method will return an error if any symbols being resolved have been

    moved to the error state due to the failure of a dependency. If this

    method returns an error then clients should log it and call

    LLVMOrcMaterializationResponsibilityFailMaterialization.

    If no dependencies have been registered for the symbols covered by this

    MaterializationResponsibility then this method is guaranteed to return

    LLVMErrorSuccess.

    Defined at line 541 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool isCommutative (Instruction * I, Value * ValWithUses, bool IsCopyable)

    Parameters

    I The instruction to check for commutativity
    ValWithUses The value whose uses are analyzed for special patterns

    Defined at line 541 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool canProfitablyRuntimeUnrollMultiExitLoop (Loop * L, SmallVectorImpl<BasicBlock *> & OtherExits, BasicBlock * LatchExit, bool UseEpilogRemainder)

    Returns true if we can profitably unroll the multi-exit loop L. Currently,

    we return true only if UnrollRuntimeMultiExit is set to true.

    Defined at line 541 of file llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp

  • void generateIsAllowedClause (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate the isAllowedClauseForDirective function implementation.

    Defined at line 541 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • void reverseUseLists (Module & M)

    Defined at line 542 of file llvm/tools/verify-uselistorder/verify-uselistorder.cpp

  •  LLVMGetInlineAsmDialect (LLVMValueRef InlineAsmVal)

    Get the dialect used by the inline asm snippet

    Defined at line 542 of file llvm/lib/IR/Core.cpp

  • bool hasReadOnlyFlag (const GlobalValueSummary * S)

    Defined at line 543 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • GenericValue executeFCMP_UNE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 543 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • void HandleExtern ()

    Defined at line 543 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void printSyncScope (raw_ostream & OS, const LLVMContext & Context, SyncScope::ID SSID, SmallVectorImpl<StringRef> & SSNs)

    Defined at line 543 of file llvm/lib/CodeGen/MachineOperand.cpp

  • void cacheDIVar (FrameDataInfo & FrameData, DenseMap<Value *, DILocalVariable *> & DIVarCache)

    Defined at line 543 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void createCombinedModuleSummaryIndex ()

    Create a combined index file from the input IR files and write it.

    This is meant to enable testing of ThinLTO combined index generation,

    currently available via the gold plugin via -thinlto.

    Defined at line 543 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • void findAllApple (DWARFContext & DICtx, raw_ostream & OS, function GetNameForDWARFReg)

    Print all DIEs in apple accelerator tables

    Defined at line 543 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • Expected<RemoveNoteInfo> parseRemoveNoteInfo (StringRef FlagValue)

    Defined at line 543 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • MDNode * stripDebugLocFromLoopID (MDNode * N)

    Defined at line 543 of file llvm/lib/IR/DebugInfo.cpp

  • void writeLineTableOpcode (const DWARFYAML::LineTableOpcode & Op, uint8_t OpcodeBase, uint8_t AddrSize, raw_ostream & OS, bool IsLittleEndian)

    Defined at line 543 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • bool blockEndsInUnreachable (const MachineBasicBlock * MBB)

    A no successor, non-return block probably ends in unreachable and is cold.

    Also consider a block that ends in an indirect branch to be a return block,

    since many targets use plain indirect branches to return.

    Defined at line 544 of file llvm/lib/CodeGen/BranchFolding.cpp

  • bool isSingleUnscheduledPred (SUnit * SU, SUnit * SU2)

    isSingleUnscheduledPred - If SU2 is the only unscheduled predecessor

    of SU, return true (we may have duplicates)

    Defined at line 544 of file llvm/lib/CodeGen/VLIWMachineScheduler.cpp

  • Error getRelocationValueString (const RelocationRef & Rel, bool SymbolDescription, SmallVectorImpl<char> & Result)

    Defined at line 544 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void updateLiveness (MachineFunction & MF)

    Helper function to update the liveness information for the callee-saved

    registers.

    Defined at line 544 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • bool tryToRecognizeTableBasedCttz (Instruction & I, const DataLayout & DL)

    Try to recognize table-based ctz implementation.

    E.g., an example in C (for more cases please see the llvm/tests):

    int f(unsigned x) {

    static const char table[32] =

    {0, 1, 28, 2, 29, 14, 24, 3, 30,

    22, 20, 15, 25, 17, 4, 8, 31, 27,

    13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9};

    return table[((unsigned)((x

    &

    -x) * 0x077CB531U)) >> 27];

    }

    this can be lowered to `cttz` instruction.

    There is also a special case when the element is 0.

    The (x

    &

    -x) sets the lowest non-zero bit to 1. The multiply is a de-bruijn

    sequence that contains each pattern of bits in it. The shift extracts

    the top bits after the multiply, and that index into the table should

    represent the number of trailing zeros in the original number.

    Here are some examples or LLVM IR for a 64-bit target:

    CASE 1:

    %sub = sub i32 0, %x

    %and = and i32 %sub, %x

    %mul = mul i32 %and, 125613361

    %shr = lshr i32 %mul, 27

    %idxprom = zext i32 %shr to i64

    %arrayidx = getelementptr inbounds [32 x i8], [32 x i8]*

    .table, i64 0,

    i64 %idxprom

    %0 = load i8, i8* %arrayidx, align 1, !tbaa !8

    CASE 2:

    %sub = sub i32 0, %x

    %and = and i32 %sub, %x

    %mul = mul i32 %and, 72416175

    %shr = lshr i32 %mul, 26

    %idxprom = zext i32 %shr to i64

    %arrayidx = getelementptr inbounds [64 x i16], [64 x i16]*

    .table,

    i64 0, i64 %idxprom

    %0 = load i16, i16* %arrayidx, align 2, !tbaa !8

    CASE 3:

    %sub = sub i32 0, %x

    %and = and i32 %sub, %x

    %mul = mul i32 %and, 81224991

    %shr = lshr i32 %mul, 27

    %idxprom = zext i32 %shr to i64

    %arrayidx = getelementptr inbounds [32 x i32], [32 x i32]*

    .table,

    i64 0, i64 %idxprom

    %0 = load i32, i32* %arrayidx, align 4, !tbaa !8

    CASE 4:

    %sub = sub i64 0, %x

    %and = and i64 %sub, %x

    %mul = mul i64 %and, 283881067100198605

    %shr = lshr i64 %mul, 58

    %arrayidx = getelementptr inbounds [64 x i8], [64 x i8]*

    , i64 0,

    i64 %shr

    %0 = load i8, i8* %arrayidx, align 1, !tbaa !8

    All these can be lowered to

    .cttz.i32/64 intrinsics.

    Defined at line 544 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • void exitWithErrorCode (error_code EC, StringRef Whence)

    Defined at line 545 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • template <typename T, std::enable_if_t<std::is_floating_point_v<T>, bool> = true>
    basic_string formatFloatString (T Val)

    Format floats using the same format string as PrintNumber, so we can check

    the output on all platforms.

    Defined at line 545 of file llvm/unittests/Support/ScopedPrinterTest.cpp

  • void checkUnusedAlignments (ArrayRef<Slice> Slices, const int & Alignments)

    Defined at line 546 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • int executeInput ()

    Defined at line 546 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • MemoryAccess * onlySingleValue (MemoryPhi * MP)

    If all arguments of a MemoryPHI are defined by the same incoming

    argument, return that argument.

    Defined at line 547 of file llvm/lib/Analysis/MemorySSAUpdater.cpp

  • bool shouldLinkArch (SmallVectorImpl<StringRef> & Archs, StringRef Arch)

    Defined at line 547 of file llvm/tools/dsymutil/MachODebugMapParser.cpp

  • template <typename AuxiliaryHeader>
    uint16_t getAuxMaxAlignment (uint16_t AuxHeaderSize, AuxiliaryHeader * AuxHeader, uint16_t Log2OfMaxAlign)

    Defined at line 547 of file llvm/lib/Object/ArchiveWriter.cpp

  • pair countToEliminateCompares (Loop & L, unsigned int MaxPeelCount, ScalarEvolution & SE, const TargetTransformInfo & TTI)

    Return the number of iterations to peel off from the beginning and end of the

    loop respectively, that make conditions in the body true/false. For example,

    if we peel 2 iterations off the loop below, the condition i

    <

    2 can be

    evaluated at compile time.

    for (i = 0; i

    <

    n; i++)

    if (i

    <

    2)

    ..

    else

    ..

    }

    Defined at line 547 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • bool hasStackGuardSlotTLS (const Triple & TargetTriple)

    Defined at line 548 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • void linkComponents ()

    Defined at line 548 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • Error checkForDuplicates (const MembersPerArchitectureMap & MembersPerArch)

    Defined at line 548 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • bool collectRegionsConstants (OutlinableRegion & Region, DenseMap<unsigned int, Constant *> & GVNToConstant, DenseSet<unsigned int> & NotSame)

    Find whether

    matches the global value numbering to Constant

    mapping found so far.

    Parameters

    Region - The OutlinableRegion we are checking for constants
    GVNToConstant - The mapping of global value number to Constants.
    NotSame - The set of global value numbers that do not have the same constant in each region.

    Defined at line 548 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • bool hasWriteOnlyFlag (const GlobalValueSummary * S)

    Defined at line 549 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • void warnOrExitGivenError (FailureMode FailMode, error_code EC, StringRef Whence)

    Defined at line 549 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • uint64_t computeMIRComplexityScoreImpl (const MachineFunction & MF)

    Try to produce some number that indicates a function is getting smaller /

    simpler.

    Defined at line 549 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • int readSIB (struct InternalInstruction * insn)

    Consumes the SIB byte to determine addressing information.

    Defined at line 549 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • void emitColumnLabelsForIndex (raw_ostream & OS, const CoverageViewOptions & Opts)

    Emit column labels for the table in the index.

    Defined at line 551 of file llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp

  • bool checkVars (const DebugVarMap & DIVarsBefore, const DebugVarMap & DIVarsAfter, StringRef NameOfWrappedPass, StringRef FileNameFromCU, bool ShouldWriteIntoJSON, llvm::json::Array & Bugs)

    This checks the preservation of original debug variable intrinsics.

    Defined at line 551 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • void emitDXILOperationTableDataStructs (const RecordKeeper & Records, raw_ostream & OS)

    Defined at line 551 of file llvm/utils/TableGen/DXILEmitter.cpp

  • MutableArrayRef makeArgArray (Argument * Args, size_t Count)

    Defined at line 552 of file llvm/lib/IR/Function.cpp

  • GenericValue executeFCMP_ULE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 552 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • Expected getFileName (const DebugStringTableSubsectionRef & Strings, const DebugChecksumsSubsectionRef & Checksums, uint32_t FileID)

    Defined at line 552 of file llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp

  • bool removeUndefDbgAssignsFromEntryBlock (BasicBlock * BB)

    Remove redundant undef dbg.assign intrinsic from an entry block using a

    forward scan.

    Strategy:

    ---------------------

    Scanning forward, delete dbg.assign intrinsics iff they are undef, not

    linked to an intrinsic, and don't share an aggregate variable with a debug

    intrinsic that didn't meet the criteria. In other words, undef dbg.assigns

    that come before non-undef debug intrinsics for the variable are

    deleted. Given:

    dbg.assign undef, "x", FragmentX1 (*)

    <block

    of instructions, none being "dbg.value ..., "x", ...">

    dbg.value %V, "x", FragmentX2

    <block

    of instructions, none being "dbg.value ..., "x", ...">

    dbg.assign undef, "x", FragmentX1

    then (only) the instruction marked with (*) can be removed.

    Possible improvements:

    - Keep track of non-overlapping fragments.

    Defined at line 552 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool checkOuterLoopInsts (FlattenInfo & FI, SmallPtrSetImpl<Instruction *> & IterationInstructions, const TargetTransformInfo * TTI)

    Defined at line 552 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • Constant * SegmentOffset (IRBuilderBase & IRB, int Offset, unsigned int AddressSpace)

    Defined at line 553 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • basic_string normalizePath (StringRef Path)

    Defined at line 554 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void fail (const Instruction * I, const char * Reason, Value * V)

    Defined at line 554 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • thinlto_code_gen_t thinlto_create_codegen ()

    Instantiates a ThinLTO code generator.

    Returns NULL on error (check lto_get_error_message() for details).

    The ThinLTOCodeGenerator is not intended to be reuse for multiple

    compilation: the model is that the client adds modules to the generator and

    ask to perform the ThinLTO optimizations / codegen, and finally destroys the

    codegenerator.

    Defined at line 554 of file llvm/tools/lto/lto.cpp

  • bool isCanonical (const MDString * S)

    Defined at line 555 of file llvm/lib/IR/DebugInfoMetadata.cpp

  • bool hasConstantFlag (const GlobalValueSummary * S)

    Defined at line 555 of file llvm/lib/IR/ModuleSummaryIndex.cpp

  • void setAttributeNamespaces (xmlNodePtr Node)

    libxml2 assumes that attributes do not inherit default namespaces, whereas

    the original mt.exe does make this assumption. This function reconciles

    this by setting all attributes to have the inherited default namespace.

    Defined at line 555 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • void getAIXSystemVersion (VersionTuple & SystemVersion)

    Helper to return AIX system version. Must return void to use ASSERT_*.

    Defined at line 555 of file llvm/unittests/TargetParser/Host.cpp

  • void splitPosNeg (const APFloat & Lower, const APFloat & Upper, std::optional<SameSignRange> & NegPart, std::optional<SameSignRange> & PosPart)

    Split the range into positive and negative components.

    Defined at line 555 of file llvm/lib/IR/ConstantFPRange.cpp

  • int getFD (StringRef Filename, std::error_code & EC, CreationDisposition Disp, FileAccess Access, OpenFlags Flags)

    ===----------------------------------------------------------------------===//

    raw_fd_ostream

    ===----------------------------------------------------------------------===//

    Defined at line 555 of file llvm/lib/Support/raw_ostream.cpp

  • void relocKindName (uint32_t X, raw_ostream & Out)

    Defined at line 555 of file llvm/lib/DebugInfo/BTF/BTFParser.cpp

  • template <typename T, std::enable_if_t<std::is_floating_point_v<T>, bool> = true>
    basic_string formatJsonFloatString (T Val)

    Format floats using the same format string used in JSON, so we can check the

    output on all platforms.

    Defined at line 556 of file llvm/unittests/Support/ScopedPrinterTest.cpp

  • LLVMErrorRef LLVMOrcMaterializationResponsibilityDefineMaterializing (LLVMOrcMaterializationResponsibilityRef MR, LLVMOrcCSymbolFlagsMapPairs Pairs, size_t NumPairs)

    Attempt to claim responsibility for new definitions. This method can be

    used to claim responsibility for symbols that are added to a

    materialization unit during the compilation process (e.g. literal pool

    symbols). Symbol linkage rules are the same as for symbols that are

    defined up front: duplicate strong definitions will result in errors.

    Duplicate weak definitions will be discarded (in which case they will

    not be added to this responsibility instance).

    This method can be used by materialization units that want to add

    additional symbols at materialization time (e.g. stubs, compile

    callbacks, metadata)

    Defined at line 556 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void HandleTopLevelExpression ()

    Defined at line 556 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void printPredicates (ArrayRef<const Record *> Predicates, StringRef Name, raw_ostream & OS)

    Defined at line 557 of file llvm/utils/TableGen/CompressInstEmitter.cpp

  • void dumpArchive (const Archive * Arc, ScopedPrinter & Writer)

    Dumps each object file in

    Defined at line 557 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • void handleMergeWriterError (Error E, StringRef WhenceFile, StringRef WhenceFunction, bool ShowHint)

    Defined at line 557 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void printExportTable (const COFFObjectFile * Obj)

    Prints export tables. The export table is a table containing the list of

    exported symbol from the DLL.

    Defined at line 557 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • Value * simplifyX86pmadd (IntrinsicInst & II, InstCombiner::BuilderTy & Builder, bool IsPMADDWD)

    Defined at line 557 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • void printFileSectionSizes (StringRef file)

    Print the section sizes for

    If

    is an archive, print the

    section sizes for each archive member.

    Defined at line 557 of file llvm/tools/llvm-size/llvm-size.cpp

  • bool isValidHexFloatingPointPrefix (char C)

    Defined at line 558 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • LLVMTypeRef LLVMGetInlineAsmFunctionType (LLVMValueRef InlineAsmVal)

    Get the function type of the inline assembly snippet. The same type that

    was passed into LLVMGetInlineAsm originally

    Defined at line 558 of file llvm/lib/IR/Core.cpp

  • const SCEV * getMinFromExprs (const SCEV * I, const SCEV * J, ScalarEvolution * SE)

    Compare

    and

    and return the minimum.

    Return nullptr in case we couldn't find an answer.

    Defined at line 558 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • int getPredState (DenseMap<BasicBlock *, int> & FinalStates, Function & F, int ParentBaseState, BasicBlock * BB)

    Calculate the intersection of all the FinalStates for a BasicBlock's

    predecessors.

    Defined at line 558 of file llvm/lib/Target/X86/X86WinEHState.cpp

  • uint32_t formatPercentage (uint64_t dividend, uint64_t divisor)

    Format dividend/divisor as a percentage. Return 1 if the result is greater

    than 0% and less than 1%.

    Defined at line 559 of file llvm/lib/ProfileData/GCOV.cpp

  • StringRef toTextKind (MarkupKind Kind)

    ===----------------------------------------------------------------------===//

    MarkupContent

    ===----------------------------------------------------------------------===//

    Defined at line 559 of file llvm/lib/Support/LSP/Protocol.cpp

  • bool isSingleUnscheduledSucc (SUnit * SU, SUnit * SU2)

    isSingleUnscheduledSucc - If SU2 is the only unscheduled successor

    of SU, return true (we may have duplicates)

    Defined at line 559 of file llvm/lib/CodeGen/VLIWMachineScheduler.cpp

  • bool comparePaths (StringRef Path1, StringRef Path2)

    Defined at line 559 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool isMyCode (const SymbolGroup & Group)

    Defined at line 559 of file llvm/lib/DebugInfo/PDB/Native/InputFile.cpp

  • void scanSchedRW (const Record * RWDef, ConstRecVec & RWDefs, SmallPtrSet<const Record *, 16> & RWSet)

    Recursively find all reachable SchedReadWrite records.

    Defined at line 559 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • bool areNonOverlapSameBaseLoadAndStore (const Value * LoadPtr, Type * LoadTy, const Value * StorePtr, Type * StoreTy, const DataLayout & DL)

    Check if the load and the store have the same base, constant offsets and

    non-overlapping access ranges.

    Defined at line 559 of file llvm/lib/Analysis/Loads.cpp

  • MemoryAccess * getNewDefiningAccessForClone (MemoryAccess * MA, const ValueToValueMapTy & VMap, PhiToDefMap & MPhiMap, MemorySSA * MSSA, function_ref IsInClonedRegion)

    Defined at line 559 of file llvm/lib/Analysis/MemorySSAUpdater.cpp

  • Expected<OutputLocation> getOutputFileName (StringRef InputFile, const DsymutilOptions & Options)

    Defined at line 559 of file llvm/tools/dsymutil/dsymutil.cpp

  • void addSymbol (Object & Obj, const NewSymbolInfo & SymInfo, uint8_t DefaultVisibility)

    Add symbol to the Object symbol table with the specified properties.

    Defined at line 559 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • APInt determineLiveOperandBitsAddCarry (unsigned int OperandNo, const APInt & AOut, const KnownBits & LHS, const KnownBits & RHS, bool CarryZero, bool CarryOne)

    Defined at line 559 of file llvm/lib/Analysis/DemandedBits.cpp

  • const char * getTargetMMOFlagName (const TargetInstrInfo & TII, unsigned int TMMOFlag)

    Defined at line 560 of file llvm/lib/CodeGen/MachineOperand.cpp

  • void handleCallSite (Instruction & I, const Function * CalledFunction, ArrayRef InlinedCallStack, const int & CallSiteEntries, Module & M, int & MatchedCallSites, OptimizationRemarkEmitter & ORE)

    Defined at line 560 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • GenericValue executeFCMP_UGE (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 561 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • SmallVector<Slice, 2> buildSlices (LLVMContext & LLVMCtx, ArrayRef<OwningBinary<Binary>> InputBinaries, const int & Alignments, int & ExtractedObjects)

    Updates vector ExtractedObjects with the MachOObjectFiles extracted from

    Universal Binary files to transfer ownership.

    Defined at line 561 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • BasicBlock * HandleCallsInBlockInlinedThroughInvoke (BasicBlock * BB, BasicBlock * UnwindEdge, UnwindDestMemoTy * FuncletUnwindMap)

    When we inline a basic block into an invoke,

    we have to turn all of the calls that can throw into invokes.

    This function analyze BB to see if there are any calls, and if so,

    it rewrites them to be invokes that jump to InvokeDest and fills in the PHI

    nodes in that block with the values specified in InvokeDestPHIValues.

    Defined at line 561 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool CreatePrologue (Function * F, Module * M, Instruction * CheckLoc, const TargetLoweringBase * TLI, AllocaInst *& AI)

    Insert code into the entry block that stores the stack guard

    variable onto the stack:

    entry:

    StackGuardSlot = alloca i8*

    StackGuard =

    <stack

    guard>

    call void

    .stackprotector(StackGuard, StackGuardSlot)

    Returns true if the platform/triple supports the stackprotectorcreate pseudo

    node.

    Defined at line 562 of file llvm/lib/CodeGen/StackProtector.cpp

  • Cursor lexFloatingPointLiteral (Cursor Range, Cursor C, MIToken & Token)

    Defined at line 562 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • LLVMBool LLVMGetInlineAsmHasSideEffects (LLVMValueRef InlineAsmVal)

    Get if the inline asm snippet has side effects

    Defined at line 563 of file llvm/lib/IR/Core.cpp

  • const Function * getCalledFunction (const MachineInstr & MI)

    Defined at line 563 of file llvm/lib/CodeGen/MachineRegisterInfo.cpp

  • const MDNode * createAccessTag (const MDNode * AccessType)

    Defined at line 563 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

  • bool processCmpIntrinsic (CmpIntrinsic * CI, LazyValueInfo * LVI)

    Defined at line 563 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • StringRef solveTypeName (Type * Ty)

    Create name for Type. It uses MDString to store new created string to

    avoid memory leak.

    Defined at line 563 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void buildCopyToRegs (MachineIRBuilder & B, ArrayRef<Register> DstRegs, Register SrcReg, LLT SrcTy, LLT PartTy, unsigned int ExtendOp)

    Create a sequence of instructions to expand the value in

    (of type

    to the types in

    (of type

    should

    contain the type of scalar value extension if necessary.

    This is used for outgoing values (vregs to physregs)

    Defined at line 563 of file llvm/lib/CodeGen/GlobalISel/CallLowering.cpp

  • const Comdat * getELFComdat (const GlobalValue * GV)

    Defined at line 564 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • bool getHidden (RelocationRef RelRef)

    Indicates whether this relocation should hidden when listing

    relocations, usually because it is the trailing part of a multipart

    relocation that will be printed as part of the leading relocation.

    Defined at line 565 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool mergeBlocksIntoPredecessors (VPlan & Plan)

    Remove redundant VPBasicBlocks by merging them into their predecessor if

    the predecessor has a single successor.

    Defined at line 565 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void getThinLTOOldAndNewPrefix (std::string & OldPrefix, std::string & NewPrefix)

    Parse the thinlto_prefix_replace option into the

    and

    strings, if it was specified.

    Defined at line 566 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • Constant * foldOrCommuteConstant (BinaryOps Opcode, Value *& Op0, Value *& Op1, const SimplifyQuery & Q)

    Defined at line 566 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • LLVMErrorRef LLVMOrcMaterializationResponsibilityReplace (LLVMOrcMaterializationResponsibilityRef MR, LLVMOrcMaterializationUnitRef MU)

    Transfers responsibility to the given MaterializationUnit for all

    symbols defined by that MaterializationUnit. This allows

    materializers to break up work based on run-time information (e.g.

    by introspecting which symbols have actually been looked up and

    materializing only those).

    Defined at line 567 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • APInt getSizeWithOverflow (const SizeOffsetAPInt & Data)

    ===----------------------------------------------------------------------===//

    Utility functions to compute size of objects.

    Defined at line 567 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • Value * createShiftShuffle (Value * Vec, unsigned int OldIndex, unsigned int NewIndex, IRBuilderBase & Builder)

    Create a shuffle that translates (shifts) 1 element from the input vector

    to a new element location.

    Defined at line 567 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • LLVMBool LLVMGetInlineAsmNeedsAlignedStack (LLVMValueRef InlineAsmVal)

    Get if the inline asm snippet needs an aligned stack

    Defined at line 568 of file llvm/lib/IR/Core.cpp

  • template <typename T>
    T * getEnclosingLoopRegionForRegion (T * P)

    Return the enclosing loop region for region

    The templated version is

    used to support both const and non-const block arguments.

    Defined at line 568 of file llvm/lib/Transforms/Vectorize/VPlan.cpp

  • bool ProfitableToMerge (MachineBasicBlock * MBB1, MachineBasicBlock * MBB2, unsigned int MinCommonTailLength, unsigned int & CommonTailLen, int & I1, int & I2, MachineBasicBlock * SuccBB, MachineBasicBlock * PredBB, int & EHScopeMembership, bool AfterPlacement, MBFIWrapper & MBBFreqInfo, ProfileSummaryInfo * PSI)

    ProfitableToMerge - Check if two machine basic blocks have a common tail

    and decide if it would be profitable to merge those tails. Return the

    length of the common tail and iterators to the first common instruction

    in each block.

    MBB1, MBB2 The blocks to check

    MinCommonTailLength Minimum size of tail block to be merged.

    CommonTailLen Out parameter to record the size of the shared tail between

    MBB1 and MBB2

    I1, I2 Iterator references that will be changed to point to the first

    instruction in the common tail shared by MBB1,MBB2

    SuccBB A common successor of MBB1, MBB2 which are in a canonical form

    relative to SuccBB

    PredBB The layout predecessor of SuccBB, if any.

    EHScopeMembership map from block to EH scope #.

    AfterPlacement True if we are merging blocks after layout. Stricter

    thresholds apply to prevent undoing tail-duplication.

    Defined at line 568 of file llvm/lib/CodeGen/BranchFolding.cpp

  • void mergeCondAndCode (raw_ostream & CombinedStream, StringRef CondStr, StringRef CodeStr)

    Defined at line 569 of file llvm/utils/TableGen/CompressInstEmitter.cpp

  • uint32_t branchDiv (uint64_t Numerator, uint64_t Divisor)

    This custom division function mimics gcov's branch ouputs:

    - Round to closest whole number

    - Only output 0% or 100% if it's exactly that value

    Defined at line 569 of file llvm/lib/ProfileData/GCOV.cpp

  • void checkWFRetconPrototype (const AnyCoroIdRetconInst * I, Value * V)

    Check that the given value is a well-formed prototype for the

    llvm.coro.id.retcon.* intrinsics.

    Defined at line 569 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • void checkAndStripPrefixes (xmlNodePtr Node, std::vector<xmlNsPtr> & RequiredPrefixes)

    The merging process may create too many prefix defined namespaces. This

    function removes all unnecessary ones from the tree.

    Defined at line 569 of file llvm/lib/WindowsManifest/WindowsManifestMerger.cpp

  • void replaceSwiftErrorOps (Function & F, coro::Shape & Shape, int * VMap)

    Defined at line 569 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool unswitchTrivialBranch (Loop & L, BranchInst & BI, DominatorTree & DT, LoopInfo & LI, ScalarEvolution * SE, MemorySSAUpdater * MSSAU)

    Unswitch a trivial branch if the condition is loop invariant.

    This routine should only be called when loop code leading to the branch has

    been validated as trivial (no side effects). This routine checks if the

    condition is invariant and one of the successors is a loop exit. This

    allows us to unswitch without duplicating the loop, making it trivial.

    If this routine fails to unswitch the branch it returns false.

    If the branch can be unswitched, this routine splits the preheader and

    hoists the branch above that split. Preserves loop simplified form

    (splitting the exit block as necessary). It simplifies the branch within

    the loop to an unconditional branch but doesn't remove it entirely. Further

    cleanup can be done with some simplifycfg like pass.

    If `SE` is not null, it will be updated based on the potential loop SCEVs

    invalidated by this.

    Defined at line 569 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • GenericValue executeFCMP_ULT (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 570 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • int getStartOrEndSlot (const MachineInstr & MI)

    Defined at line 570 of file llvm/lib/CodeGen/StackColoring.cpp

  • void getGapMask (const Constant & MaskConst, unsigned int Factor, unsigned int LeafMaskLen, APInt & GapMask)

    A wide mask

    <

    1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0> could be used to skip the

    last field in a factor-of-three interleaved store or deinterleaved load (in

    which case LeafMaskLen is 4). Such (wide) mask is also known as gap mask.

    This helper function tries to detect this pattern and return the actual

    factor we're accessing, which is 2 in this example.

    Defined at line 570 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp

  • void printFrameIndex (raw_ostream & OS, int FrameIndex, bool IsFixed, const MachineFrameInfo * MFI)

    Defined at line 571 of file llvm/lib/CodeGen/MachineOperand.cpp

  • ConstantRange getPreferredRange (const ConstantRange & CR1, const ConstantRange & CR2, PreferredRangeType Type)

    Defined at line 571 of file llvm/lib/IR/ConstantRange.cpp

  • MachineInstr * foldPatchpoint (MachineFunction & MF, MachineInstr & MI, ArrayRef<unsigned int> Ops, int FrameIndex, const TargetInstrInfo & TII)

    Defined at line 571 of file llvm/lib/CodeGen/TargetInstrInfo.cpp

  • const SCEV * NoopOrExtend (const SCEV * S, Type * Ty, ScalarEvolution & SE, bool Signed)

    If the type of

    matches with

    return

    Otherwise, return

    signed or unsigned extension of

    to type

    Defined at line 572 of file llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp

  • void simplifyLiveInsWithSCEV (VPlan & Plan, PredicatedScalarEvolution & PSE)

    Check

    live-in and replace them with constants, if they can be

    simplified via SCEV.

    Defined at line 572 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • bool isNopCopy (const MachineInstr & PreviousCopy, MCRegister Src, MCRegister Def, const TargetRegisterInfo * TRI, const TargetInstrInfo * TII, bool UseCopyInstr)

    Return true if

    did copy register

    to register

    This fact may have been obscured by sub register usage or may not be true at

    all even though Src and Def are subregisters of the registers used in

    PreviousCopy. e.g.

    isNopCopy("ecx = COPY eax", AX, CX) == true

    isNopCopy("ecx = COPY eax", AH, CL) == false

    Defined at line 572 of file llvm/lib/CodeGen/MachineCopyPropagation.cpp

  • SourceLanguage MapDWARFLanguageToCVLang (SourceLanguageName DWLName)

    Defined at line 572 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • bool hasSameValue (const MachineRegisterInfo & MRI, const TargetInstrInfo * TII, Register TReg, Register FReg)

    Returns

    true iff the two registers are known to have the same value.

    Defined at line 572 of file llvm/lib/CodeGen/EarlyIfConversion.cpp

  • LLVMErrorRef LLVMOrcMaterializationResponsibilityDelegate (LLVMOrcMaterializationResponsibilityRef MR, LLVMOrcSymbolStringPoolEntryRef * Symbols, size_t NumSymbols, LLVMOrcMaterializationResponsibilityRef * Result)

    Delegates responsibility for the given symbols to the returned

    materialization responsibility. Useful for breaking up work between

    threads, or different kinds of materialization processes.

    The caller retains responsibility of the the passed

    MaterializationResponsibility.

    Defined at line 574 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMBool LLVMGetInlineAsmCanUnwind (LLVMValueRef InlineAsmVal)

    Get if the inline asm snippet may unwind the stack

    Defined at line 573 of file llvm/lib/IR/Core.cpp

  • bool isNoReturnDef (const MachineOperand & MO)

    Defined at line 574 of file llvm/lib/CodeGen/MachineRegisterInfo.cpp

  • void MainLoop ()

    top ::= definition | external | expression | ';'

    Defined at line 574 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • void TestFileWriterHelper (endianness ByteOrder)

    Defined at line 574 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • bool isFullDominator (const BasicBlock * BB, const DominatorTree & DT)

    True if block has successors and it dominates all of them.

    Defined at line 576 of file llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp

  • bool isACalleeSavedRegister (MCRegister Reg, const TargetRegisterInfo & TRI, const MachineFunction & MF)

    Defined at line 577 of file llvm/lib/CodeGen/RegAllocPBQP.cpp

  • int CompareValueComplexity (const LoopInfo *const LI, Value * LV, Value * RV, unsigned int Depth)

    Compare the two values

    and

    in terms of their "complexity" where

    "complexity" is a partial (and somewhat ad-hoc) relation used to order

    operands in SCEV expressions.

    Defined at line 577 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • BitSetInfo buildBitSet (ArrayRef Offsets)

    Build a bit set for list of offsets.

    Defined at line 578 of file llvm/lib/Transforms/IPO/LowerTypeTests.cpp

  • const MCSymbolELF * getLinkedToSymbol (const GlobalObject * GO, const TargetMachine & TM)

    Defined at line 578 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • Intrinsic::ID getForIntrinsic (Intrinsic::ID Id)

    Defined at line 578 of file llvm/lib/IR/IntrinsicInst.cpp

  • bool extractBranchProbabilities (Instruction * I, BranchProbability & TrueProb, BranchProbability & FalseProb)

    Constructs the true and false branch probabilities if the the instruction has

    valid branch weights. Returns true when this was successful, false otherwise.

    Defined at line 578 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • Cursor maybeLexHexadecimalLiteral (Cursor C, MIToken & Token)

    Defined at line 578 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void doExtract (StringRef Name, const object::Archive::Child & C)

    Implement the 'x' operation. This function extracts files back to the file

    system.

    Defined at line 578 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • optional getTypeSizeImpl (DWARFDie Die, uint64_t PointerSize, SmallPtrSetImpl<const DWARFDebugInfoEntry *> & Visited)

    Defined at line 578 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • LLVMContextRef LLVMGetModuleContext (LLVMModuleRef M)

    Obtain the context to which this module is associated.

    Defined at line 579 of file llvm/lib/IR/Core.cpp

  • GenericValue executeFCMP_UGT (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 579 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • basic_string getThinLTOOutputFile (StringRef Path, StringRef OldPrefix, StringRef NewPrefix)

    Given the original

    to an output file, replace any path

    prefix matching

    with

    Also, create the

    resulting directory if it does not yet exist.

    Defined at line 579 of file llvm/tools/llvm-lto/llvm-lto.cpp

  • Error loadNewSectionData (StringRef ArgValue, StringRef OptionName, SmallVector<NewSectionInfo, 0> & NewSections)

    Parse input option

    and load section data. This function

    extracts section name and name of the file keeping section data from

    ArgValue, loads data from the file, and stores section name and data

    into the vector of new sections

    Defined at line 579 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • void encodeUTF8 (uint32_t UnicodeScalarValue, SmallVectorImpl<char> & Result)

    encodeUTF8 - Encode

    in UTF-8 and append it to result.

    Defined at line 579 of file llvm/lib/Support/YAMLParser.cpp

  • bool lookup (ObjectFile & Obj, DWARFContext & DICtx, uint64_t Address, raw_ostream & OS)

    Handle the --lookup option and dump the DIEs and line info for the given

    address.

    TODO: specified Address for --lookup option could relate for several

    different sections(in case not-linked object file). llvm-dwarfdump

    need to do something with this: extend lookup option with section

    information or probably display all matched entries, or something else...

    Defined at line 579 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void adjustArgAttributes (AnyMemIntrinsic * Intrinsic, unsigned int ArgNo, uint64_t PtrOffset)

    Update the attributes given that a memory access is updated (the

    dereferenced pointer could be moved forward when shortening a

    mem intrinsic).

    Defined at line 579 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • bool isFrameStoreOpcode (int Opcode, TypeSize & MemBytes)

    Defined at line 579 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool isTopLevelPadForMSVC (const Instruction * EHPad)

    Defined at line 580 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • uint32_t getMemberAlignment (SymbolicFile * SymObj)

    AIX big archives may contain shared object members. The AIX OS requires these

    members to be aligned if they are 64-bit and recommends it for 32-bit

    members. This ensures that when these members are loaded they are aligned in

    memory.

    Defined at line 580 of file llvm/lib/Object/ArchiveWriter.cpp

  • optional calculateSubRanges (ScalarEvolution & SE, const Loop & L, InductiveRangeCheck::Range & Range, const LoopStructure & MainLoopStructure)

    Compute a safe set of limits for the main loop to run in -- effectively the

    intersection of `Range' and the iteration space of the original loop.

    Return std::nullopt if unable to compute the set of subranges.

    Defined at line 580 of file llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp

  • bool checkEFLAGSLive (MachineInstr * MI)

    Defined at line 581 of file llvm/lib/Target/X86/X86CmovConversion.cpp

  • Value * getAvailableLoadStore (Instruction * Inst, const Value * Ptr, Type * AccessTy, bool AtLeastAtomic, const DataLayout & DL, bool * IsLoadCSE)

    Defined at line 581 of file llvm/lib/Analysis/Loads.cpp

  • vector getStandardOpcodeLengths (uint16_t Version, optional OpcodeBase)

    Defined at line 582 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • Value * translateExtract (ExtractElementInst * ExtElt, unsigned int NewIndex, IRBuilderBase & Builder)

    Given an extract element instruction with constant index operand, shuffle

    the source vector (shift the scalar element) to a NewIndex for extraction.

    Return null if the input can be constant folded, so that we are not creating

    unnecessary instructions.

    Defined at line 582 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • Error createStaticLibrary (LLVMContext & LLVMCtx, const Config & C)

    Defined at line 582 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • void emitRegisterNameString (raw_ostream & O, StringRef AltName, const int & Registers)

    Defined at line 582 of file llvm/utils/TableGen/AsmWriterEmitter.cpp

  • void dumpMachOUniversalBinary (const MachOUniversalBinary * UBinary, ScopedPrinter & Writer)

    Dumps each object file in

    Universal Binary;

    Defined at line 583 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • bool functionHasLines (const Function & F, unsigned int & EndLine)

    Defined at line 583 of file llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp

  • ArchType parseArch (StringRef ArchName)

    Defined at line 583 of file llvm/lib/TargetParser/Triple.cpp

  • bool isCommutative (Instruction * I)

    This is a helper function to check whether

    is commutative.

    This is a convenience wrapper that calls the two-parameter version of

    isCommutative with the same instruction for both parameters. This is

    the common case where the instruction being checked for commutativity

    is the same as the instruction whose uses are analyzed for special

    patterns (see the two-parameter version above for details).

    Parameters

    I The instruction to check for commutativity

    Defined at line 584 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void initializeLowerSwitchLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 584 of file llvm/lib/Transforms/Utils/LowerSwitch.cpp

  • const char * getDarwinStabString (uint8_t NType)

    Defined at line 584 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void writeJSON (StringRef OrigDIVerifyBugsReportFilePath, StringRef FileNameFromCU, StringRef NameOfWrappedPass, llvm::json::Array & Bugs)

    Write the json data into the specifed file.

    Defined at line 584 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • const char * getLTOPhase (ThinOrFullLTOPhase LTOPhase)

    Defined at line 585 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • bool isSupportedAtomicType (Type * Ty)

    Are we allowed to form a atomic load or store of this type?

    Defined at line 586 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • bool isFullPostDominator (const BasicBlock * BB, const PostDominatorTree & PDT)

    True if block has predecessors and it postdominates all of them.

    Defined at line 586 of file llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp

  • Value * createMaskedBitTest (IRBuilder<> & B, Value * Bits, Value * BitOffset)

    Build a test that bit BitOffset mod sizeof(Bits)*8 is set in

    Bits. This pattern matches to the bt instruction on x86.

    Defined at line 586 of file llvm/lib/Transforms/IPO/LowerTypeTests.cpp

  • void dropDeadSymbols (Module & Mod, const GVSummaryMapTy & DefinedGlobals, const ModuleSummaryIndex & Index)

    Defined at line 586 of file llvm/lib/LTO/LTOBackend.cpp

  • bool hasConditionalTerminator (const VPBasicBlock * VPBB)

    Defined at line 586 of file llvm/lib/Transforms/Vectorize/VPlan.cpp

  • void initializeMIR2VecVocabPrinterLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 588 of file llvm/lib/CodeGen/MIR2Vec.cpp

  • template <typename nlist_t>
    NListEntry constructNameList (const nlist_t & nlist)

    Defined at line 588 of file llvm/tools/obj2yaml/macho2yaml.cpp

  • template <typename MaxMinT>
    SCEVTypes convertToSCEVype (MaxMinT & MM)

    Defined at line 588 of file llvm/lib/Transforms/Scalar/NaryReassociate.cpp

  • ValueLatticeElement getFromRangeMetadata (Instruction * BBI)

    Defined at line 588 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • GenericValue executeFCMP_ORD (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 588 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • bool canEvaluateShifted (Value * V, unsigned int NumBits, bool IsLeftShift, InstCombinerImpl & IC, Instruction * CxtI)

    See if we can compute the specified value, but shifted logically to the left

    or right by some number of bits. This should return true if the expression

    can be computed for the same cost as the current expression tree. This is

    used to eliminate extraneous shifting from things like:

    %C = shl i128 %A, 64

    %D = shl i128 %B, 96

    %E = or i128 %C, %D

    %F = lshr i128 %E, 64

    where the client will ask if E can be computed shifted right by 64-bits. If

    this succeeds, getShiftedValue() will be called to produce the value.

    Defined at line 588 of file llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  • unsigned int getNumberOfPotentiallyCommutativeOps (Instruction * I)

    Parameters

    I The instruction to check for commutativity

    Defined at line 589 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • unsigned int getEntrySizeForKind (SectionKind Kind)

    Defined at line 590 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • Option * LookupNearestOption (StringRef Arg, const StringMap<Option *> & OptionsMap, std::string & NearestString)

    LookupNearestOption - Lookup the closest match to the option specified by

    the specified option on the command line. If there is a value specified

    (after an equal sign) return that as well. This assumes that leading dashes

    have already been stripped.

    Defined at line 590 of file llvm/lib/Support/CommandLine.cpp

  • void LLVMOrcMaterializationResponsibilityFailMaterialization (LLVMOrcMaterializationResponsibilityRef MR)

    Notify all not-yet-emitted covered by this MaterializationResponsibility

    instance that an error has occurred.

    This will remove all symbols covered by this MaterializationResponsibility

    from the target JITDylib, and send an error to any queries waiting on

    these symbols.

    Defined at line 591 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  •  LLVMGetTypeKind (LLVMTypeRef Ty)

    Obtain the enumerated type of a Type instance.

    Defined at line 588 of file llvm/lib/IR/Core.cpp

  • Value * CreateTripRemainder (IRBuilder<> & B, Value * BECount, Value * TripCount, unsigned int Count)

    Calculate ModVal = (BECount + 1) % Count on the abstract integer domain

    accounting for the possibility of unsigned overflow in the 2s complement

    domain. Preconditions:

    1) TripCount = BECount + 1 (allowing overflow)

    2) Log2(Count)

    <

    = BitWidth(BECount)

    Defined at line 589 of file llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp

  • Value * foldSelectICmpMinMax (const ICmpInst * Cmp, Value * TVal, Value * FVal, InstCombiner::BuilderTy & Builder, const SimplifyQuery & SQ)

    Try to fold a select to a min/max intrinsic. Many cases are already handled

    by matchDecomposedSelectPattern but here we handle the cases where more

    extensive modification of the IR is required.

    Defined at line 589 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • void initializeGlobalMergeFuncPassWrapperPassOnce (PassRegistry & Registry)

    Defined at line 590 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp

  • bool hasField (TBAAStructTypeNode BaseType, TBAAStructTypeNode FieldType)

    Defined at line 590 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

  • void initializeHardwareLoopsLegacyPassOnce (PassRegistry & Registry)

    Defined at line 591 of file llvm/lib/CodeGen/HardwareLoops.cpp

  • void emitDxilOperation (const RecordKeeper & Records, raw_ostream & OS)

    Entry function call that invokes the functionality of this TableGen backend

    Parameters

    Records TableGen records of DXIL Operations defined in DXIL.td
    OS output stream

    Defined at line 591 of file llvm/utils/TableGen/DXILEmitter.cpp

  • void thinlto_codegen_dispose (thinlto_code_gen_t cg)

    Frees the generator and all memory it internally allocated.

    Upon return the thinlto_code_gen_t is no longer valid.

    Defined at line 592 of file llvm/tools/lto/lto.cpp

  • void emitLeafTable (const DirectiveLanguage & DirLang, raw_ostream & OS, StringRef TableName)

    Defined at line 592 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • void printBitVectorAsHex (raw_ostream & OS, const BitVector & Bits, unsigned int Width)

    Print a BitVector as a sequence of hex numbers using a little-endian mapping.

    Width is the number of bits per hex number.

    Defined at line 593 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • void darwinPrintStab (MachOObjectFile * MachO, const NMSymbol & S)

    darwinPrintStab() prints the n_sect, n_desc along with a symbolic name of

    a stab n_type value in a Mach-O file.

    Defined at line 593 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool processMinMaxIntrinsic (MinMaxIntrinsic * MM, LazyValueInfo * LVI)

    See if this min/max intrinsic always picks it's one specific operand.

    If not, check whether we can canonicalize signed minmax into unsigned version

    Defined at line 593 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void thinlto_codegen_add_module (thinlto_code_gen_t cg, const char * identifier, const char * data, int length)

    Add a module to a ThinLTO code generator. Identifier has to be unique among

    all the modules in a code generator. The data buffer stays owned by the

    client, and is expected to be available for the entire lifetime of the

    thinlto_code_gen_t it is added to.

    On failure, returns NULL (check lto_get_error_message() for details).

    Defined at line 594 of file llvm/tools/lto/lto.cpp

  • void replaceDbgUsesOutsideBlock (Value * V, Value * New, BasicBlock * BB)

    Replace debug record uses of MetadataAsValue(ValueAsMetadata(V)) outside BB

    with New.

    Defined at line 594 of file llvm/lib/IR/Value.cpp

  • Value * simplifyAddInst (Value * Op0, Value * Op1, bool IsNSW, bool IsNUW, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an Add, see if we can fold the result.

    If not, this returns null.

    Defined at line 594 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool IsARMArchitecture (vector Args)

    ===---------------------------------------------------------------------===//

    CC abstraction

    Defined at line 595 of file llvm/tools/bugpoint/ToolRunner.cpp

  • void writeSymbolTable (raw_ostream & Out, Kind Kind, bool Deterministic, ArrayRef Members, StringRef StringTable, uint64_t MembersOffset, unsigned int NumSyms, uint64_t PrevMemberOffset, uint64_t NextMemberOffset, bool Is64Bit)

    Defined at line 595 of file llvm/lib/Object/ArchiveWriter.cpp

  • bool shouldInstrumentBlock (const Function & F, const BasicBlock * BB, const DominatorTree & DT, const PostDominatorTree & PDT, const SanitizerCoverageOptions & Options)

    Defined at line 596 of file llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp

  • const DIExpression * combineDIExpressions (const DIExpression * Original, const DIExpression * Addition)

    Append the expression

    to

    and return the result.

    Defined at line 597 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void dumpCOFFObject (COFFObjectFile * Obj, ScopedPrinter & Writer)

    Dumps

    file;

    Defined at line 597 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • template <typename T>
    void writeLoadConfig (T & S, raw_ostream & OS)

    Defined at line 598 of file llvm/lib/ObjectYAML/COFFEmitter.cpp

  • void PrintIndirectSymbolTable (MachOObjectFile * O, bool verbose, uint32_t n, uint32_t count, uint32_t stride, uint64_t addr)

    Defined at line 598 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void thinlto_codegen_process (thinlto_code_gen_t cg)

    Optimize and codegen all the modules added to the codegenerator using

    ThinLTO. Resulting objects are accessible using thinlto_module_get_object().

    Defined at line 599 of file llvm/tools/lto/lto.cpp

  • void LLVMOrcIRTransformLayerEmit (LLVMOrcIRTransformLayerRef IRTransformLayer, LLVMOrcMaterializationResponsibilityRef MR, LLVMOrcThreadSafeModuleRef TSM)

    Defined at line 596 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • BranchProbability getCHRBiasThreshold ()

    Defined at line 599 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • const char * getInlineAdvisorContext (InlinePass IP)

    Defined at line 599 of file llvm/lib/Analysis/InlineAdvisor.cpp

  • int getSuccState (DenseMap<BasicBlock *, int> & InitialStates, Function & F, int ParentBaseState, BasicBlock * BB)

    Calculate the intersection of all the InitialStates for a BasicBlock's

    successors.

    Defined at line 599 of file llvm/lib/Target/X86/X86WinEHState.cpp

  • void AlignToInstStartColumn (size_t Start, const MCSubtargetInfo & STI, raw_ostream & OS)

    Defined at line 600 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • Cursor maybeLexNumericalLiteral (Cursor C, MIToken & Token)

    Defined at line 600 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • template <typename T>
    optional getInsertExtractIndex (const Value * Inst, unsigned int Offset)

    Defined at line 600 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • int main ()

    ===----------------------------------------------------------------------===//

    Main driver code.

    ===----------------------------------------------------------------------===//

    Defined at line 600 of file llvm/examples/Kaleidoscope/Chapter3/toy.cpp

  • VPHeaderPHIRecipe * createWidenInductionRecipe (PHINode * Phi, VPPhi * PhiR, VPValue * Start, const InductionDescriptor & IndDesc, VPlan & Plan, PredicatedScalarEvolution & PSE, Loop & OrigLoop, DebugLoc DL)

    Creates a VPWidenIntOrFpInductionRecipe or VPWidenPointerInductionRecipe

    for

    based on

    Defined at line 600 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • int llvm_gsymutil_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 600 of file llvm/tools/llvm-gsymutil/llvm-gsymutil.cpp

  • void Destroy (void * Ctx)

    Defined at line 601 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • unsigned int thinlto_module_get_num_objects (thinlto_code_gen_t cg)

    Returns the number of object files produced by the ThinLTO CodeGenerator.

    It usually matches the number of input files, but this is not a guarantee of

    the API and may change in future implementation, so the client should not

    assume it.

    Defined at line 601 of file llvm/tools/lto/lto.cpp

  • Expected<int64_t> parseChangeSectionLMA (StringRef ArgValue, StringRef OptionName)

    Defined at line 601 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • Error checkLinkeditDataCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char ** LoadCmd, const char * CmdName, std::list<MachOElement> & Elements, const char * ElementName)

    Defined at line 601 of file llvm/lib/Object/MachOObjectFile.cpp

  • Instruction * transformToIndexedCompare (GEPOperator * GEPLHS, Value * RHS, CmpPredicate Cond, const DataLayout & DL, InstCombiner & IC)

    Converts (CMP GEPLHS, RHS) if this change would make RHS a constant.

    We can look through PHIs, GEPs and casts in order to determine a common base

    between GEPLHS and RHS.

    Defined at line 601 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • DIType * solveDIType (DIBuilder & Builder, Type * Ty, const DataLayout & Layout, DIScope * Scope, unsigned int LineNum, DenseMap<Type *, DIType *> & DITypeCache)

    Defined at line 601 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void initializeMachineOutlinerPassOnce (PassRegistry & Registry)

    Defined at line 602 of file llvm/lib/CodeGen/MachineOutliner.cpp

  • void TargetFn ()

    Defined at line 603 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • bool isUsingScopeBasedEH (Function & F)

    Defined at line 603 of file llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp

  • void group2Shuffle (MVT VT, SmallVectorImpl<int> & Mask, SmallVectorImpl<int> & Output)

    group2Shuffle reorder the shuffle stride back into continuous order.

    For example For VF16 with Mask1 = {0,3,6,9,12,15,2,5,8,11,14,1,4,7,10,13} =>

    MaskResult = {0,11,6,1,12,7,2,13,8,3,14,9,4,15,10,5}.

    Defined at line 603 of file llvm/lib/Target/X86/X86InterleavedAccess.cpp

  • optional getFreezeInsertPt (Value * V, const DominatorTree & DT)

    Return Instruction before which we can insert freeze for the value V as close

    to def as possible. If there is no place to add freeze, return empty.

    Defined at line 603 of file llvm/lib/Transforms/Scalar/GuardWidening.cpp

  • bool checkNumberingAndReplace (DenseMap<unsigned int, DenseSet<unsigned int>> & CurrentSrcTgtNumberMapping, unsigned int SourceArgVal, unsigned int TargetArgVal)

    Determine if operand number

    is in the current mapping set

    for operand number

    Parameters

    CurrentSrcTgtNumberMapping [in,out] current mapping of global value numbers from source IRSimilarityCandidate to target IRSimilarityCandidate.
    SourceArgVal [in] The global value number for an operand in the in the original candidate.
    TargetArgVal [in] The global value number for the corresponding operand in the other candidate.

    Defined at line 603 of file llvm/lib/Analysis/IRSimilarityIdentifier.cpp

  • void scalarizeMaskedScatter (const DataLayout & DL, bool HasBranchDivergence, CallInst * CI, DomTreeUpdater * DTU, bool & ModifiedDT)

    Translate a masked scatter intrinsic, like

    void

    .masked.scatter.v16i32(

    <

    16 x i32> %Src,

    <

    16 x i32*>* %Ptrs, i32 4,

    <

    16 x i1> %Mask)

    to a chain of basic blocks, that stores element one-by-one if

    the appropriate mask bit is set.

    %Ptrs = getelementptr i32, i32* %ptr,

    <

    16 x i64> %ind

    %Mask0 = extractelement

    <

    16 x i1> %Mask, i32 0

    br i1 %Mask0, label %cond.store, label %else

    cond.store:

    %Elt0 = extractelement

    <

    16 x i32> %Src, i32 0

    %Ptr0 = extractelement

    <

    16 x i32*> %Ptrs, i32 0

    store i32 %Elt0, i32* %Ptr0, align 4

    br label %else

    else:

    %Mask1 = extractelement

    <

    16 x i1> %Mask, i32 1

    br i1 %Mask1, label %cond.store1, label %else2

    cond.store1:

    %Elt1 = extractelement

    <

    16 x i32> %Src, i32 1

    %Ptr1 = extractelement

    <

    16 x i32*> %Ptrs, i32 1

    store i32 %Elt1, i32* %Ptr1, align 4

    br label %else2

    . . .

    Defined at line 603 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  •  thinlto_module_get_object (thinlto_code_gen_t cg, unsigned int index)

    Returns a reference to the ith object file produced by the ThinLTO

    CodeGenerator.

    Client should use

    to get the number of

    available objects.

    Defined at line 604 of file llvm/tools/lto/lto.cpp

  • KnownBits computeForSatAddSub (bool Add, bool Signed, const KnownBits & LHS, const KnownBits & RHS)

    Defined at line 604 of file llvm/lib/Support/KnownBits.cpp

  • LLVMOrcJITDylibRef LLVMOrcExecutionSessionCreateBareJITDylib (LLVMOrcExecutionSessionRef ES, const char * Name)

    Create a "bare" JITDylib.

    The client is responsible for ensuring that the JITDylib's name is unique,

    e.g. by calling LLVMOrcExecutionSessionGetJTIDylibByName first.

    This call does not install any library code or symbols into the newly

    created JITDylib. The client is responsible for all configuration.

    Defined at line 605 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • SourceLanguage MapDWARFLanguageToCVLang (SourceLanguage DWLang)

    Defined at line 605 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void checkWFAlloc (const Instruction * I, Value * V)

    Check that the given value is a well-formed allocator.

    Defined at line 605 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • bool X86SelectAddress (MachineInstr & I, const X86TargetMachine & TM, const MachineRegisterInfo & MRI, const X86Subtarget & STI, X86AddressMode & AM)

    Fill in an address from the given instruction.

    Defined at line 605 of file llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp

  • void Materialize (void * Ctx, LLVMOrcMaterializationResponsibilityRef MR)

    Defined at line 605 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • bool hasSameBaseOpValue (MachineInstr * LoadInst, MachineInstr * StoreInst)

    Defined at line 606 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • bool mayBeAccessToSubobjectOf (TBAAStructTagNodeImpl BaseTag, TBAAStructTagNodeImpl SubobjectTag, const MDNode * CommonType, const MDNode ** GenericTag, bool & MayAlias)

    Return true if for two given accesses, one of the accessed objects may be a

    subobject of the other. The

    and

    parameters

    describe the accesses to the base object and the subobject respectively.

    must be the metadata node describing the common type of the

    accessed objects. On return,

    is set to true iff these accesses

    may alias and

    if not null, points to the most generic access

    tag for the given two.

    Defined at line 607 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

  • Value * convertToShadowDataInt (int & IRB, Value * Ptr, Type * IntptrTy, uint64_t PtrShift, Value * ShadowBase, Value * AppMemMask)

    Defined at line 608 of file llvm/lib/Transforms/Instrumentation/TypeSanitizer.cpp

  • bool isEphemeralValueOf (const Instruction * I, const Value * E)

    Defined at line 608 of file llvm/lib/Analysis/ValueTracking.cpp

  • template <typename K, typename S, typename M>
    bool checkBias (K * Key, BranchProbability TrueProb, BranchProbability FalseProb, S & TrueSet, S & FalseSet, M & BiasMap)

    A helper for CheckBiasedBranch and CheckBiasedSelect. If TrueProb >=

    CHRBiasThreshold, put Key into TrueSet and return true. If FalseProb >=

    CHRBiasThreshold, put Key into FalseSet and return true. Otherwise, return

    false.

    Defined at line 609 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • void packCmovGroup (MachineInstr * First, MachineInstr * Last)

    Given /p First CMOV instruction and /p Last CMOV instruction representing a

    group of CMOV instructions, which may contain debug instructions in between,

    move all debug instructions to after the last CMOV instruction, making the

    CMOV group consecutive.

    Defined at line 610 of file llvm/lib/Target/X86/X86CmovConversion.cpp

  • bool collectLineTableSources (const DWARFDebugLine::LineTable & LT, StringRef CompDir, std::vector<std::string> & Sources)

    Collect all sources referenced from the given line table, scoped to the given

    CU compilation directory.

    Defined at line 610 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void createUniversalBinary (LLVMContext & LLVMCtx, ArrayRef<OwningBinary<Binary>> InputBinaries, const int & Alignments, StringRef OutputFileName, FatHeaderType HeaderType)

    Defined at line 610 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • Expected DebugAMiscompilation (BugDriver & BD, Expected<bool> (*)(BugDriver &, std::unique_ptr<Module>, std::unique_ptr<Module>) TestFn)

    This is a generic driver to narrow down miscompilations, either in an

    optimization or a code generator.

    Defined at line 610 of file llvm/tools/bugpoint/Miscompilation.cpp

  • int dsymutil_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 610 of file llvm/tools/dsymutil/dsymutil.cpp

  • template <typename ValT>
    void finishCallSiteParams (ValT Val, const DIExpression * Expr, ArrayRef<FwdRegParamInfo> DescribedParams, ParamSet & Params)

    Emit call site parameter entries that are described by the given value and

    debug expression.

    Defined at line 611 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • Value * simplifyX86movmsk (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Defined at line 611 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • basic_string getOptionHelpName (const OptTable & Opts, OptSpecifier Id)

    Defined at line 611 of file llvm/lib/Option/OptTable.cpp

  • unsigned int thinlto_module_get_num_object_files (thinlto_code_gen_t cg)

    Returns the number of object files produced by the ThinLTO CodeGenerator.

    It usually matches the number of input files, but this is not a guarantee of

    the API and may change in future implementation, so the client should not

    assume it.

    Defined at line 612 of file llvm/tools/lto/lto.cpp

  • LLVMErrorRef LLVMOrcExecutionSessionCreateJITDylib (LLVMOrcExecutionSessionRef ES, LLVMOrcJITDylibRef * Result, const char * Name)

    Create a JITDylib.

    The client is responsible for ensuring that the JITDylib's name is unique,

    e.g. by calling LLVMOrcExecutionSessionGetJTIDylibByName first.

    If a Platform is attached to the ExecutionSession then

    Platform::setupJITDylib will be called to install standard platform symbols

    (e.g. standard library interposes). If no Platform is installed then this

    call is equivalent to LLVMExecutionSessionRefCreateBareJITDylib and will

    always return success.

    Defined at line 611 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool getPDataSection (const COFFObjectFile * Obj, std::vector<RelocationRef> & Rels, const RuntimeFunction *& RFStart, int & NumRFs)

    Given the COFF object file, this function returns the relocations for .pdata

    and the pointer to "runtime function" structs.

    Defined at line 612 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • bool canFitInBitfield (int64_t Value, unsigned int NumBits)

    Defined at line 613 of file llvm/lib/TableGen/Record.cpp

  • void dumpWindowsResourceFile (WindowsResource * WinRes, ScopedPrinter & Printer)

    Dumps

    Windows Resource (.res) file;

    Defined at line 613 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • int readDisplacement (struct InternalInstruction * insn)

    Defined at line 613 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool isAssumedReadOnlyOrReadNone (Attributor & A, const IRPosition & IRP, const AbstractAttribute & QueryingAA, bool RequireReadNone, bool & IsKnown)

    Defined at line 613 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • bool tryToShorten (Instruction * DeadI, int64_t & DeadStart, uint64_t & DeadSize, int64_t KillingStart, uint64_t KillingSize, bool IsOverwriteEnd)

    Defined at line 613 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • void readMemprof (Module & M, Function & F, IndexedInstrProfReader * MemProfReader, const TargetLibraryInfo & TLI, int & FullStackIdToAllocMatchInfo, int & MatchedCallSites, int & UndriftMaps, OptimizationRemarkEmitter & ORE, uint64_t MaxColdSize)

    Defined at line 613 of file llvm/lib/Transforms/Instrumentation/MemProfUse.cpp

  • void printHexDigits (raw_ostream & OS, ArrayRef Bytes, size_t StartBit, size_t NumBits)

    Helper function that prints hexdigit and have a sub-byte starting position.

    Defined at line 614 of file llvm/lib/CAS/OnDiskTrieRawHashMap.cpp

  • TokenKind getMetadataKeywordKind (StringRef Identifier)

    Defined at line 614 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • CondCode getSetCCInverseImpl (CondCode Op, bool isIntegerLike)

    Defined at line 614 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool containsAddRecDependentOnLoop (const SCEV * S, const Loop & L)

    Defined at line 615 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • const char * thinlto_module_get_object_file (thinlto_code_gen_t cg, unsigned int index)

    Returns the path to the ith object file produced by the ThinLTO

    CodeGenerator.

    Client should use

    to get the number

    of available objects.

    Defined at line 615 of file llvm/tools/lto/lto.cpp

  • StoreInst * combineStoreToNewValue (InstCombinerImpl & IC, StoreInst & SI, Value * V)

    Combine a store to a new type.

    Returns the newly created store instruction.

    Defined at line 615 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • void removeSSACopy (Function & F)

    The SCCP solver inserts bitcasts for PredicateInfo. These interfere with the

    promoteConstantStackValues() optimization.

    Defined at line 616 of file llvm/lib/Transforms/IPO/FunctionSpecialization.cpp

  • StringRef getSectionPrefixForGlobal (SectionKind Kind, bool IsLarge)

    Return the section prefix name used by options FunctionsSections and

    DataSections.

    Defined at line 616 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • std::optional<SmallVector<uint32_t, 2>> computeMergedBranchWeights (ArrayRef<BCECmpBlock> Comparisons)

    Determine the branch weights for the resulting conditional branch, resulting

    after merging

    Defined at line 616 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • bool isBlockingStore (int64_t LoadDispImm, unsigned int LoadSize, int64_t StoreDispImm, unsigned int StoreSize)

    Defined at line 617 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • void removeRedundantInductionCasts (VPlan & Plan)

    Remove redundant casts of inductions.

    Such redundant casts are casts of induction variables that can be ignored,

    because we already proved that the casted phi is equal to the uncasted phi

    in the vectorized loop. There is no need to vectorize the cast - the same

    value can be used for both the phi and casts in the vector loop.

    Defined at line 617 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void initializeStraightLineStrengthReduceLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 618 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp

  • Printable PrintNodeId (const SDNode & Node)

    Defined at line 618 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

  • bool ConstHasGlobalValuePredicate (const Constant * C, bool (*)(const GlobalValue *) Predicate)

    Check if C contains a GlobalValue for which Predicate is true.

    Defined at line 618 of file llvm/lib/IR/Constants.cpp

  • bool symbolIsDefined (const NMSymbol & Sym)

    Defined at line 619 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void printSimpleValueType (raw_ostream & OS, MVT VT)

    Defined at line 619 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • GenericValue executeFCMP_UNO (GenericValue Src1, GenericValue Src2, Type * Ty)

    Defined at line 619 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • void initializeX86DAGToDAGISelLegacyPassOnce (PassRegistry & Registry)

    Defined at line 620 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • DISubprogram * getSubprogramOrNull (OutlinableGroup & Group)

    Get the subprogram if it exists for one of the outlined regions.

    Parameters

    Group [in] - The set of regions to find a subprogram for.

    Defined at line 620 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void checkWFDealloc (const Instruction * I, Value * V)

    Check that the given value is a well-formed deallocator.

    Defined at line 620 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • bool checkIVUsers (FlattenInfo & FI)

    We require all uses of both induction variables to match this pattern:

    (OuterPHI * InnerTripCount) + InnerPHI

    Any uses of the induction variables not matching that pattern would

    require a div/mod to reconstruct in the flattened loop, so the

    transformation wouldn't be profitable.

    Defined at line 620 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • void visitIVCast (CastInst * Cast, WideIVInfo & WI, ScalarEvolution * SE, const TargetTransformInfo * TTI)

    Update information about the induction variable that is extended by this

    sign or zero extend operation. This is used to determine the final width of

    the IV before actually widening it.

    Defined at line 620 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • void HandleInlinedLandingPad (InvokeInst * II, BasicBlock * FirstNewBlock, ClonedCodeInfo & InlinedCodeInfo)

    If we inlined an invoke site, we need to convert calls

    in the body of the inlined function into invokes.

    II is the invoke instruction being inlined. FirstNewBlock is the first

    block of the inlined code (the last block is the end of the function),

    and InlineCodeInfo is information about the code that got inlined.

    Defined at line 620 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • XXH128_hash_t XXH_mult64to128 (uint64_t lhs, uint64_t rhs)

    Calculates a 64->128-bit long multiply.

    Uses `__uint128_t` and `_umul128` if available, otherwise uses a scalar

    version.

    Parameters

    lhs , rhs The 64-bit integers to be multiplied

    Returns

    The 128-bit result represented in an

    Defined at line 620 of file llvm/lib/Support/xxhash.cpp

  • bool outranks (InstructionContext upper, InstructionContext lower)

    outranks - Indicates whether, if an instruction has two different applicable

    classes, which class should be preferred when performing decode. This

    imposes a total ordering (ties are resolved toward "lower")

    Parameters

    upper - The class that may be preferable
    lower - The class that may be less preferable

    Returns

    - True if upper is to be preferred, false otherwise.

    Defined at line 621 of file llvm/utils/TableGen/X86DisassemblerTables.cpp

  • void thinlto_codegen_disable_codegen (thinlto_code_gen_t cg, lto_bool_t disable)

    Disable CodeGen, only run the stages till codegen and stop. The output will

    be bitcode.

    Defined at line 622 of file llvm/tools/lto/lto.cpp

  • LLVMOrcJITDylibRef LLVMOrcExecutionSessionGetJITDylibByName (LLVMOrcExecutionSessionRef ES, const char * Name)

    Returns the JITDylib with the given name, or NULL if no such JITDylib

    exists.

    Defined at line 622 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool areAllUsesEqual (Instruction * I)

    areAllUsesEqual - Check whether the uses of a value are all the same.

    This is similar to Instruction::hasOneUse() except this will also return

    true when there are no uses or multiple uses that all refer to the same

    value.

    Defined at line 622 of file llvm/lib/Transforms/Utils/Local.cpp

  • unsigned int getFixupKindSize (unsigned int Kind)

    Defined at line 622 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

  • Value * phiNodeOperandWithNewAddressSpace (AddrSpaceCastInst * NewI, Value * Operand)

    Inserts an addrspacecast for a phi node operand, handling the proper

    insertion position based on the operand type.

    Defined at line 622 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • void dumpInput (StringRef File, ScopedPrinter & Writer)

    Opens

    and dumps it.

    Defined at line 622 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • void printSubRegIndex (raw_ostream & OS, const CodeGenSubRegIndex * Idx)

    Defined at line 623 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • template <typename SymbolType>
    Expected fromCodeViewSymbolImpl (CVRecord Symbol)

    Defined at line 623 of file llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp

  • void writeFileName (raw_ostream & S, StringRef ArchiveName, StringRef ArchitectureName)

    Defined at line 623 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • unsigned int classifyReductivePower (const Value * V)

    FIXME: ReduceOperandsSkip has similar function, except it uses larger numbers

    for more reduced.

    Defined at line 623 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • void ARM64EmitUnwindCode (MCStreamer & streamer, const WinEH::Instruction & inst)

    Unwind opcode encodings and restrictions are documented at

    https://docs.microsoft.com/en-us/cpp/build/arm64-exception-handling

    Defined at line 623 of file llvm/lib/MC/MCWin64EH.cpp

  • void updateBlockingStoresDispSizeMap (int & BlockingStoresDispSizeMap, int64_t DispImm, unsigned int Size)

    Keep track of all stores blocking a load

    Defined at line 624 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • const char * getVersionMinDirective (MCVersionMinType Type)

    Defined at line 624 of file llvm/lib/MC/MCAsmStreamer.cpp

  • bool isLegalMaskCompare (SDNode * N, const X86Subtarget * Subtarget)

    Returns true if this masked compare can be implemented legally with this

    type.

    Defined at line 624 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • Instruction * foldVecTruncToExtElt (TruncInst & Trunc, InstCombinerImpl & IC)

    Given a vector that is bitcast to an integer, optionally logically

    right-shifted, and truncated, convert it to an extractelement.

    Example (big endian):

    trunc (lshr (bitcast

    <

    4 x i32> %X to i128), 32) to i32

    --->

    extractelement

    <

    4 x i32> %X, 1

    Defined at line 624 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • int lookupLLVMIntrinsicByName (ArrayRef NameOffsetTable, StringRef Name, StringRef Target)

    Looks up Name in NameTable via binary search. NameTable must be sorted

    and all entries must start with "llvm.". If NameTable contains an exact

    match for Name or a prefix of Name followed by a dot, its index in

    NameTable is returned. Otherwise, -1 is returned.

    Defined at line 624 of file llvm/lib/IR/Intrinsics.cpp

  • void initializeMIR2VecPrinterLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 625 of file llvm/lib/CodeGen/MIR2Vec.cpp

  • void printBits (raw_ostream & OS, ArrayRef Bytes, size_t StartBit, size_t NumBits)

    Defined at line 625 of file llvm/lib/CAS/OnDiskTrieRawHashMap.cpp

  • void insertCSRSaves (MachineBasicBlock & SaveBlock, ArrayRef<CalleeSavedInfo> CSI)

    Insert spill code for the callee-saved registers used in the function.

    Defined at line 625 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • const char * toString (TokenKind TokenKind)

    Defined at line 625 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • bool getLoadsAndStores (BasicBlockSet & Blocks, SmallVector<Instruction *, 4> & MemInstr)

    Defined at line 625 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • optional getElementIndex (const Value * Inst, unsigned int Offset)

    Defined at line 625 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • int collectDbgVariableRecords (Function & F)

    Returns all debug records in F.

    Defined at line 626 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • Cursor maybeLexExclaim (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 626 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void thinlto_codegen_set_codegen_only (thinlto_code_gen_t cg, lto_bool_t codegen_only)

    Perform CodeGen only: disable all other stages.

    Defined at line 627 of file llvm/tools/lto/lto.cpp

  • StringRef getOpcodeName (uint8_t Opcode, uint8_t OpcodeBase)

    Defined at line 627 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp

  • MachineBasicBlock * findFalseBlock (MachineBasicBlock * BB, MachineBasicBlock * TrueBB)

    BB has a fallthrough. Find its 'false' successor given its 'true' successor.

    Defined at line 627 of file llvm/lib/CodeGen/IfConversion.cpp

  • template <class ProfTy>
    void preorderVisitOneRoot (ProfTy & Profile, function_ref<void (ProfTy &)> Visitor)

    Defined at line 627 of file llvm/lib/Analysis/CtxProfAnalysis.cpp

  • bool shouldCreateArchive (ArchiveOperation Op)

    Defined at line 627 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool checkBiasedBranch (BranchInst * BI, Region * R, DenseSet<Region *> & TrueBiasedRegionsGlobal, DenseSet<Region *> & FalseBiasedRegionsGlobal, DenseMap<Region *, BranchProbability> & BranchBiasMap)

    Returns true and insert a region into the right biased set and the map if the

    branch of the region is biased.

    Defined at line 627 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • bool collectObjectSources (ObjectFile & Obj, DWARFContext & DICtx, const Twine & Filename, raw_ostream & OS)

    Defined at line 627 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • bool isValidNamespaceIdentifier (StringRef S)

    Defined at line 628 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • bool processOverflowIntrinsic (WithOverflowInst * WO, LazyValueInfo * LVI)

    Rewrite this with.overflow intrinsic as non-overflowing.

    Defined at line 629 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • bool IsBackEdge (BasicBlock * From, BasicBlock * To, const DominatorTree & DT)

    Returns true iff From->To is a backedge.

    A twist here is that we treat From->To as a backedge if

    * To dominates From or

    * To->UniqueSuccessor dominates From

    Defined at line 630 of file llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp

  • Value * findBaseDefiningValueCached (Value * I, int & Cache, int & KnownBases)

    Returns the base defining value for this value.

    Defined at line 630 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void unifyBitWidth (APInt & A, APInt & B)

    A helper function that unifies the bitwidth of A and B.

    Defined at line 631 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp

  • void extractSlice (LLVMContext & LLVMCtx, ArrayRef<OwningBinary<Binary>> InputBinaries, const int & Alignments, StringRef ArchType, StringRef OutputFileName)

    Defined at line 631 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • void parseRawArgs (int Argc, char ** Argv)

    Defined at line 631 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • int checkAllExpressions (RuntimeDyldChecker & Checker)

    Defined at line 633 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • bool isNonEscapingGlobalNoAliasWithLoad (const GlobalValue * GV, const Value * V, int & Depth, const DataLayout & DL)

    GV is a non-escaping global. V is a pointer address that has been loaded from.

    If we can prove that V must escape, we can conclude that a load from V cannot

    alias GV.

    Defined at line 633 of file llvm/lib/Analysis/GlobalsModRef.cpp

  • Expected<SectionPatternAddressUpdate> parseChangeSectionAddr (StringRef ArgValue, StringRef OptionName, MatchStyle SectionMatchStyle, function_ref<Error (Error)> ErrorCallback)

    Defined at line 633 of file llvm/tools/llvm-objcopy/ObjcopyOptions.cpp

  • template <PointerStripKind StripKind>
    void NoopCallback (const Value * )

    Defined at line 634 of file llvm/lib/IR/Value.cpp

  • void checkConstantInt (const Instruction * I, Value * V, const char * Reason)

    Defined at line 634 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • void EmitSDKVersionSuffix (raw_ostream & OS, const VersionTuple & SDKVersion)

    Defined at line 634 of file llvm/lib/MC/MCAsmStreamer.cpp

  • void removeRedundantBlockingStores (int & BlockingStoresDispSizeMap)

    Remove blocking stores contained in each other.

    Defined at line 634 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp

  • SmallString<128> getELFSectionNameForGlobal (const GlobalObject * GO, SectionKind Kind, Mangler & Mang, const TargetMachine & TM, unsigned int EntrySize, bool UniqueSectionName, const MachineJumpTableEntry * JTE)

    Defined at line 634 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • int Lookup (ArrayRef<TableEntry> Table, unsigned int Opcode)

    Defined at line 635 of file llvm/lib/Target/X86/X86FloatingPoint.cpp

  • unsigned int getMaxCounterID (const CounterMappingContext & Ctx, const CoverageMappingRecord & Record)

    Defined at line 635 of file llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  • void sortSymbolList (int & SymbolList)

    Defined at line 636 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void printMemOperand (raw_ostream & OS, const MachineMemOperand & MMO, const MachineFunction * MF, const Module * M, const MachineFrameInfo * MFI, const TargetInstrInfo * TII, LLVMContext & Ctx)

    Print the MMO with more information from the SelectionDAG.

    Defined at line 636 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

  • void foldInlineAsmMemOperand (MachineInstr * MI, unsigned int OpNo, int FI, const TargetInstrInfo & TII)

    Defined at line 636 of file llvm/lib/CodeGen/TargetInstrInfo.cpp

  • bool CommaSeparateAndAddOccurrence (Option * Handler, unsigned int pos, StringRef ArgName, StringRef Value, bool MultiArg)

    CommaSeparateAndAddOccurrence - A wrapper around Handler->addOccurrence()

    that does special handling of cl::CommaSeparated options.

    Defined at line 636 of file llvm/lib/Support/CommandLine.cpp

  • template <PointerStripKind StripKind>
    const Value * stripPointerCastsAndOffsets (const Value * V, function_ref Func)

    Defined at line 637 of file llvm/lib/IR/Value.cpp

  • bool onlyAllocateTileRegisters (const TargetRegisterInfo & TRI, const MachineRegisterInfo & MRI, Register Reg)

    Defined at line 638 of file llvm/lib/Target/X86/X86TargetMachine.cpp

  • void normalizePredicate (ScalarEvolution * SE, Loop * L, LoopICmp & RC)

    Defined at line 638 of file llvm/lib/Transforms/Scalar/LoopPredication.cpp

  • template <class ProfilesTy, class ProfTy>
    void preorderVisit (ProfilesTy & Profiles, function_ref<void (ProfTy &)> Visitor)

    Defined at line 639 of file llvm/lib/Analysis/CtxProfAnalysis.cpp

  • bool isRootFile (const MCDwarfFile & RootFile, StringRef & Directory, StringRef & FileName, optional Checksum)

    Defined at line 639 of file llvm/lib/MC/MCDwarf.cpp

  • void printAddressSpace (const Module * M, unsigned int AS, raw_ostream & OS, StringRef Prefix, StringRef Suffix, bool ForcePrint)

    Defined at line 639 of file llvm/lib/IR/AsmWriter.cpp

  • int isSignedOp (CondCode Opcode)

    For an integer comparison, return 1 if the comparison is a signed operation

    and 2 if the result is an unsigned comparison. Return zero if the operation

    does not depend on the sign of the input (setne and seteq).

    Defined at line 639 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • Error checkDyldInfoCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char ** LoadCmd, const char * CmdName, std::list<MachOElement> & Elements)

    Defined at line 639 of file llvm/lib/Object/MachOObjectFile.cpp

  • int addClrEHHandler (WinEHFuncInfo & FuncInfo, int HandlerParentState, int TryParentState, ClrHandlerType HandlerType, uint32_t TypeToken, const BasicBlock * Handler)

    Defined at line 640 of file llvm/lib/CodeGen/WinEHPrepare.cpp

  • SDValue widenVectorToPartType (SelectionDAG & DAG, SDValue Val, const SDLoc & DL, EVT PartVT)

    Defined at line 640 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • Instruction * GetLoopInvariantInsertPosition (Loop * L, Instruction * Hint)

    Defined at line 641 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp

  • DiffVec & diffEncode (DiffVec & V, int List)

    Fills V with differentials between every two consecutive elements of List.

    Defined at line 641 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • void insertCSRRestores (MachineBasicBlock & RestoreBlock, int & CSI)

    Insert restore code for the callee-saved registers used in the function.

    Defined at line 641 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • basic_string mangleCoveragePath (StringRef Filename, bool PreservePaths)

    Convert a path to a gcov filename. If PreservePaths is true, this

    translates "/" to "#", ".." to "^", and drops ".", to match gcov.

    Defined at line 641 of file llvm/lib/ProfileData/GCOV.cpp

  • template <typename T>
    error_code getSymbolAuxData (const COFFObjectFile * Obj, COFFSymbolRef Symbol, uint8_t AuxSymbolIdx, const T *& Aux)

    Defined at line 642 of file llvm/tools/llvm-readobj/COFFDumper.cpp

  • template <class ELFT>
    void overrideFields (ELFYAML::Section * From, typename ELFT::Shdr & To)

    Defined at line 642 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • void addToFwdRegWorklist (int & Worklist, unsigned int Reg, const DIExpression * Expr, ArrayRef<FwdRegParamInfo> ParamsToAdd)

    Add

    to the worklist, if it's not already present, and mark that the

    given parameter registers' values can (potentially) be described using

    that register and an debug expression.

    Defined at line 642 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • Value * simplifyX86addcarry (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Defined at line 642 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • Value * foldShiftedShift (BinaryOperator * InnerShift, unsigned int OuterShAmt, bool IsOuterShl, InstCombiner::BuilderTy & Builder)

    Fold OuterShift (InnerShift X, C1), C2.

    See canEvaluateShiftedShift() for the constraints on these instructions.

    Defined at line 642 of file llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  • bool getX86CpuIDAndInfo (unsigned int value, unsigned int * rEAX, unsigned int * rEBX, unsigned int * rECX, unsigned int * rEDX)

    getX86CpuIDAndInfo - Execute the specified cpuid and return the 4 values in

    the specified arguments. If we can't run cpuid on the host, return true.

    Defined at line 643 of file llvm/lib/TargetParser/Host.cpp

  • basic_string getUdtStatLabel (uint32_t Kind)

    Defined at line 644 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • LegalizeResult simpleLibcall (MachineInstr & MI, MachineIRBuilder & MIRBuilder, unsigned int Size, Type * OpType, LostDebugLocObserver & LocObserver)

    Useful for libcalls where all operands have the same type.

    Defined at line 644 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • void createCmpXchgInstFun (IRBuilderBase & Builder, Value * Addr, Value * Loaded, Value * NewVal, Align AddrAlign, AtomicOrdering MemOpOrder, SyncScope::ID SSID, Value *& Success, Value *& NewLoaded, Instruction * MetadataSrc)

    Defined at line 644 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • bool eliminateLoadsAcrossLoops (Function & F, LoopInfo & LI, DominatorTree & DT, BlockFrequencyInfo * BFI, ProfileSummaryInfo * PSI, ScalarEvolution * SE, AssumptionCache * AC, LoopAccessInfoManager & LAIs)

    Defined at line 644 of file llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp

  • ModRMDecisionType getDecisionType (ModRMDecision & decision)

    getDecisionType - Determines whether a ModRM decision with 255 entries can

    be compacted by eliminating redundant information.

    Parameters

    decision - The decision to be compacted.

    Returns

    - The compactest available representation for the decision.

    Defined at line 644 of file llvm/utils/TableGen/X86DisassemblerTables.cpp

  • OverflowResult checkOverflow (FlattenInfo & FI, DominatorTree * DT, AssumptionCache * AC)

    Return an OverflowResult dependant on if overflow of the multiplication of

    InnerTripCount and OuterTripCount can be assumed not to happen.

    Defined at line 644 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • int readModRM (struct InternalInstruction * insn)

    Consumes all addressing information (ModR/M byte, SIB byte, and displacement.

    Defined at line 644 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • GlobalValue * createThreadLocalGV (const char * Name, Module & M, Type * Ty)

    Defined at line 645 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • bool IsInterestingCmp (ICmpInst * CMP, const DominatorTree & DT, const SanitizerCoverageOptions & Options)

    Prunes uninteresting Cmp instrumentation:

    * CMP instructions that feed into loop backedge branch.

    Note that Cmp pruning is controlled by the same flag as the

    BB pruning.

    Defined at line 645 of file llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp

  • bool isValidInBitMode (Binary & Bin)

    Defined at line 645 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • template <typename T0>
    vector getStatepointArgs (IRBuilderBase & B, uint64_t ID, uint32_t NumPatchBytes, Value * ActualCallee, uint32_t Flags, ArrayRef<T0> CallArgs)

    Defined at line 645 of file llvm/lib/IR/IRBuilder.cpp

  • unsigned int getEncodedCastOpcode (unsigned int Opcode)

    Defined at line 645 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • unsigned int getMaxBitmapSize (const CoverageMappingRecord & Record, bool IsVersion11)

    Returns the bit count

    Defined at line 645 of file llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  • void writeSymbolMap (raw_ostream & Out, Kind Kind, bool Deterministic, ArrayRef Members, SymMap & SymMap, uint64_t MembersOffset)

    Defined at line 645 of file llvm/lib/Object/ArchiveWriter.cpp

  • int getIslands (const KnownBits & EncodingBits, const KnownBits & FilterBits)

    Calculates the island(s) needed to decode the instruction.

    This returns a list of undecoded bits of an instructions, for example,

    Inst{20} = 1

    &

    &

    Inst{3-0} == 0b1111 represents two islands of yet-to-be

    decoded bits in order to verify that the instruction matches the Opcode.

    Defined at line 645 of file llvm/utils/TableGen/DecoderEmitter.cpp

  • std::optional<int64_t> getTruncStoreByteOffset (GStore & Store, Register & SrcVal, MachineRegisterInfo & MRI)

    Check if the store

    is a truncstore that can be merged. That is,

    it's a store of a shifted value of

    If

    is an empty

    Register then it does not need to match and SrcVal is set to the source

    value found.

    On match, returns the start byte offset of the

    that is being

    stored.

    Defined at line 645 of file llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp

  • bool foldLoadsRecursive (Value * V, LoadOps & LOps, const DataLayout & DL, AliasAnalysis & AA)

    Identify and Merge consecutive loads recursively which is of the form

    (ZExt(L1)

    <

    <

    shift1) | (ZExt(L2)

    <

    <

    shift2) -> ZExt(L3)

    <

    <

    shift1

    (ZExt(L1)

    <

    <

    shift1) | ZExt(L2) -> ZExt(L3)

    Defined at line 645 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • void printExportSymbolList (const int & SymbolList)

    Defined at line 646 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • TokenKind symbolToken (char C)

    Defined at line 646 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • bool collectSingleShuffleElements (Value * V, Value * LHS, Value * RHS, SmallVectorImpl<int> & Mask)

    If V is a shuffle of values that ONLY returns elements from either LHS or

    RHS, return the shuffle mask and true. Otherwise, return false.

    Defined at line 646 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • BasicBlock * mergeComparisons (ArrayRef<BCECmpBlock> Comparisons, BasicBlock *const InsertBefore, BasicBlock *const NextCmpBlock, PHINode & Phi, const TargetLibraryInfo & TLI, AliasAnalysis & AA, DomTreeUpdater & DTU)

    Merges the given contiguous comparison blocks into one memcmp block.

    Defined at line 646 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • Value * findBaseOrBDV (Value * I, int & Cache, int & KnownBases)

    Return a base pointer for this value if known. Otherwise, return it's

    base defining value.

    Defined at line 647 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void printMemOperand (raw_ostream & OS, const MachineMemOperand & MMO, const SelectionDAG * G)

    Defined at line 647 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

  • bool preservesForwardDependence (Instruction * Src, Instruction * Dst, unsigned int UnrollLevel, unsigned int JamLevel, bool Sequentialized, Dependence * D)

    Defined at line 647 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • void applySpecificSectionMappings (RuntimeDyld & Dyld, const FileToSectionIDMap & FileToSecIDMap)

    Defined at line 648 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • bool isValidReservedSectionIndex (uint16_t Index, uint16_t Machine)

    Defined at line 648 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • bool promoteSingleBlockAlloca (AllocaInst * AI, const AllocaInfo & Info, LargeBlockInfo & LBI, const DataLayout & DL, DominatorTree & DT, AssumptionCache * AC, SmallPtrSet<DbgVariableRecord *, 8> * DVRAssignsToDelete)

    Many allocas are only used within a single basic block. If this is the

    case, avoid traversing the CFG and inserting a lot of potentially useless

    PHI nodes by just performing a single linear pass over the basic block

    using the Alloca.

    If we cannot promote this alloca (because it is read before it is written),

    return false. This is necessary in cases where, due to control flow, the

    alloca is undefined only on some control flow paths. e.g. code like

    this is correct in LLVM IR:

    // A is an alloca with no stores so far

    for (...) {

    int t = *A;

    if (!first_iteration)

    use(t);

    *A = 42;

    }

    Defined at line 649 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp

  • template <typename ConcreteType>
    void mapSymbolRecordImpl (IO & IO, const char * Class, SymbolKind Kind, CodeViewYAML::SymbolRecord & Obj)

    Defined at line 650 of file llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp

  • void computeDeadSymbolsInIndex (ModuleSummaryIndex & Index, const int & GUIDPreservedSymbols)

    Defined at line 650 of file llvm/lib/LTO/ThinLTOCodeGenerator.cpp

  • GenericValue executeFCMP_BOOL (GenericValue Src1, GenericValue Src2, Type * Ty, const bool val)

    Defined at line 650 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • void TestAddressRangeEncodeDecodeHelper (const AddressRanges & Ranges, const uint64_t BaseAddr)

    Defined at line 650 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • void removeRedundantCanonicalIVs (VPlan & Plan)

    Try to replace VPWidenCanonicalIVRecipes with a widened canonical IV

    recipe, if it exists.

    Defined at line 650 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • Instruction * foldSelectICmpAndAnd (Type * SelType, const ICmpInst * Cmp, Value * TVal, Value * FVal, InstCombiner::BuilderTy & Builder)

    We want to turn:

    (select (icmp eq (and X, Y), 0), (and (lshr X, Z), 1), 1)

    into:

    zext (icmp ne i32 (and X, (or Y, (shl 1, Z))), 0)

    Note:

    Z may be 0 if lshr is missing.

    Worst-case scenario is that we will replace 5 instructions with 5 different

    instructions, but we got rid of select.

    Defined at line 650 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • LLVMBool LLVMLinkModules2 (LLVMModuleRef Dest, LLVMModuleRef Src)

    Links the source module into the destination module. The source module is

    destroyed.

    The return value is true if an error occurred, false otherwise.

    Use the diagnostic handler to get any diagnostic message.

    Defined at line 651 of file llvm/lib/Linker/LinkModules.cpp

  • int p_simp_re (struct parse * , int )

    Defined at line 647 of file llvm/lib/Support/regcomp.c

  • void thinlto_debug_options (const char *const * options, int number)

    Parse -mllvm style debug options.

    Defined at line 632 of file llvm/tools/lto/lto.cpp

  • lto_bool_t lto_module_is_thinlto (lto_module_t mod)

    Test if a module has support for ThinLTO linking.

    Defined at line 641 of file llvm/tools/lto/lto.cpp

  • void thinlto_codegen_add_must_preserve_symbol (thinlto_code_gen_t cg, const char * name, int length)

    Adds a symbol to the list of global symbols that must exist in the final

    generated code. If a function is not listed there, it might be inlined into

    every usage and optimized away. For every single module, the functions

    referenced from code outside of the ThinLTO modules need to be added here.

    Defined at line 645 of file llvm/tools/lto/lto.cpp

  • void thinlto_codegen_add_cross_referenced_symbol (thinlto_code_gen_t cg, const char * name, int length)

    Adds a symbol to the list of global symbols that are cross-referenced between

    ThinLTO files. If the ThinLTO CodeGenerator can ensure that every

    references from a ThinLTO module to this symbol is optimized away, then

    the symbol can be discarded.

    Defined at line 650 of file llvm/tools/lto/lto.cpp

  • LLVMErrorRef LLVMOrcJITDylibDefine (LLVMOrcJITDylibRef JD, LLVMOrcMaterializationUnitRef MU)

    Add the given MaterializationUnit to the given JITDylib.

    If this operation succeeds then JITDylib JD will take ownership of MU.

    If the operation fails then ownership remains with the caller who should

    call LLVMOrcDisposeMaterializationUnit to destroy it.

    Defined at line 628 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMErrorRef LLVMOrcJITDylibClear (LLVMOrcJITDylibRef JD)

    Calls remove on all trackers associated with this JITDylib, see

    JITDylib::clear().

    Defined at line 639 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcJITDylibAddGenerator (LLVMOrcJITDylibRef JD, LLVMOrcDefinitionGeneratorRef DG)

    Add a DefinitionGenerator to the given JITDylib.

    The JITDylib will take ownership of the given generator: The client is no

    longer responsible for managing its memory.

    Defined at line 643 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcDefinitionGeneratorRef LLVMOrcCreateCustomCAPIDefinitionGenerator (LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction F, void * Ctx, LLVMOrcDisposeCAPIDefinitionGeneratorFunction Dispose)

    Create a custom generator.

    The F argument will be used to implement the DefinitionGenerator's

    tryToGenerate method (see

    LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction).

    Ctx is a context object that will be passed to F. This argument is

    permitted to be null.

    Dispose is the disposal function for Ctx. This argument is permitted to be

    null (in which case the client is responsible for the lifetime of Ctx).

    Defined at line 648 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMBool LLVMTypeIsSized (LLVMTypeRef Ty)

    Whether the type has a known size.

    Things that don't have a size are abstract types, labels, and void.a

    Defined at line 636 of file llvm/lib/IR/Core.cpp

  • LLVMContextRef LLVMGetTypeContext (LLVMTypeRef Ty)

    Obtain the context to which this type instance is associated.

    Defined at line 641 of file llvm/lib/IR/Core.cpp

  • void LLVMDumpType (LLVMTypeRef Val)

    Dump a representation of a type to stderr.

    Defined at line 645 of file llvm/lib/IR/Core.cpp

  • char * LLVMPrintTypeToString (LLVMTypeRef Val)

    Return a string representation of the type. Use

    LLVMDisposeMessage to free the string.

    Defined at line 649 of file llvm/lib/IR/Core.cpp

  • void checkAsyncFuncPointer (const Instruction * I, Value * V)

    Defined at line 651 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • MachineBasicBlock * getNextBlock (MachineBasicBlock & MBB)

    Returns the next block in the function blocks ordering. If it is the end,

    returns NULL.

    Defined at line 651 of file llvm/lib/CodeGen/IfConversion.cpp

  • unsigned int dumpParentChain (DWARFDie Die, raw_ostream & OS, unsigned int Indent, DIDumpOptions DumpOpts, unsigned int Depth)

    Helper to dump a DIE with all of its parents, but no siblings.

    Defined at line 651 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp

  • void printWin64EHUnwindInfo (const Win64EH::UnwindInfo * UI)

    Defined at line 652 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • Instruction * foldCtpop (IntrinsicInst & II, InstCombinerImpl & IC)

    Defined at line 652 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • void appendIndexBits (std::string & Prefix, size_t Index, size_t NumSlots)

    Defined at line 653 of file llvm/lib/CAS/OnDiskTrieRawHashMap.cpp

  • void initializeModuleNDMPassOnce (PassRegistry & Registry)

    Defined at line 654 of file llvm/unittests/IR/LegacyPassManagerTest.cpp

  • template <typename Iter>
    DiffVec & diffEncode (DiffVec & V, unsigned int InitVal, Iter Begin, Iter End)

    Defined at line 654 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • bool isSafeAndProfitableToSinkLoad (LoadInst * L)

    Return true if we know that it is safe to sink the load out of the block

    that defines it. This means that it must be obvious the value of the load is

    not changed from the point of the load to the end of the block it is in.

    Finally, it is safe, but not profitable, to sink a load targeting a

    non-address-taken alloca. Doing so will cause us to not promote the alloca

    to a register.

    Defined at line 654 of file llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp

  • void PrintIndirectSymbols (MachOObjectFile * O, bool verbose)

    Defined at line 654 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void thinlto_codegen_set_cpu (thinlto_code_gen_t cg, const char * cpu)

    Sets the cpu to generate code for.

    Defined at line 655 of file llvm/tools/lto/lto.cpp

  • void initializeCGPassPassOnce (PassRegistry & Registry)

    Defined at line 655 of file llvm/unittests/IR/LegacyPassManagerTest.cpp

  • void LLVMOrcLookupStateContinueLookup (LLVMOrcLookupStateRef S, LLVMErrorRef Err)

    Continue a lookup that was suspended in a generator (see

    LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction).

    Defined at line 655 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • Function * getFunction (basic_string Name)

    Defined at line 655 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • bool processSaturatingInst (SaturatingInst * SI, LazyValueInfo * LVI)

    Defined at line 655 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • uint64_t computeIRComplexityScoreImpl (const Function & F)

    TODO: Additional flags and attributes may be complexity reducing. If we start

    adding flags and attributes, they could have negative cost.

    Defined at line 655 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp

  • void printLineNumbers (symbolize::LLVMSymbolizer & Symbolizer, const NMSymbol & S)

    Defined at line 655 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • basic_string CreateErrorMessage (AccountRecordStatus Error, const XRayRecord & Record, const FuncIdConversionHelper & Converter)

    Defined at line 656 of file llvm/tools/llvm-xray/xray-stacks.cpp

  • bool printAsmMRegister (const X86AsmPrinter & P, const MachineOperand & MO, char Mode, raw_ostream & O)

    Defined at line 656 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • std::optional<int> CompareSCEVComplexity (const LoopInfo *const LI, const SCEV * LHS, const SCEV * RHS, DominatorTree & DT, unsigned int Depth)

    Return negative, zero, or positive, if LHS is less than, equal to, or greater

    than RHS, respectively. A three-way result allows recursive comparisons to be

    more efficient.

    If the max analysis depth was reached, return std::nullopt, assuming we do

    not know if they are equivalent for sure.

    Defined at line 656 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • uint32_t getLongestTypeLeafName (const StatCollection & Stats)

    Defined at line 657 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • const char * getPlatformName (PlatformType Type)

    Defined at line 657 of file llvm/lib/MC/MCAsmStreamer.cpp

  • bool checkBiasedSelect (SelectInst * SI, Region * R, DenseSet<SelectInst *> & TrueBiasedSelectsGlobal, DenseSet<SelectInst *> & FalseBiasedSelectsGlobal, DenseMap<SelectInst *, BranchProbability> & SelectBiasMap)

    Returns true and insert a select into the right biased set and the map if the

    select is biased.

    Defined at line 657 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • void initializeFPassPassOnce (PassRegistry & Registry)

    Defined at line 658 of file llvm/unittests/IR/LegacyPassManagerTest.cpp

  • void llvm_blake3_hasher_reset (llvm_blake3_hasher * self)

    Defined at line 658 of file llvm/lib/Support/BLAKE3/blake3.c

  • void convertMJTI (ModuleSlotTracker & MST, yaml::MachineJumpTable & YamlJTI, const MachineJumpTableInfo & JTI)

    Defined at line 657 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • MDNode * createBranchWeights (LLVMContext & Context, uint64_t TrueWeight, uint64_t FalseWeight)

    Creates 'branch_weights' prof metadata using TrueWeight and FalseWeight.

    Scales uint64_t counters down to uint32_t if necessary to prevent overflow.

    Defined at line 658 of file llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp

  • Error macho2yaml (raw_ostream & Out, const object::MachOObjectFile & Obj, unsigned int RawSegments)

    Defined at line 658 of file llvm/tools/obj2yaml/macho2yaml.cpp

  • bool allSameOpcode (ArrayRef VL)

    Defined at line 658 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • Value * operandWithNewAddressSpaceOrCreatePoison (const Use & OperandUse, unsigned int NewAddrSpace, const ValueToValueMapTy & ValueWithNewAddrSpace, const PredicatedAddrSpaceMapTy & PredicatedAS, SmallVectorImpl<const Use *> * PoisonUsesToFix)

    A helper function for cloneInstructionWithNewAddressSpace. Returns the clone

    of OperandUse.get() in the new address space. If the clone is not ready yet,

    returns poison in the new address space as a placeholder.

    Defined at line 658 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • void initializeLPassPassOnce (PassRegistry & Registry)

    Defined at line 659 of file llvm/unittests/IR/LegacyPassManagerTest.cpp

  • void thinlto_codegen_set_cache_dir (thinlto_code_gen_t cg, const char * cache_dir)

    Sets the path to a directory to use as a cache storage for incremental build.

    Setting this activates caching.

    Defined at line 659 of file llvm/tools/lto/lto.cpp

  • bool hasProfileData (const Function & F, const FunctionOutliningInfo & OI)

    Check if there is PGO data or user annotated branch data:

    Defined at line 659 of file llvm/lib/Transforms/IPO/PartialInlining.cpp

  • unsigned int emitNop (MCStreamer & OS, unsigned int NumBytes, const X86Subtarget * Subtarget)

    Emit the largest nop instruction smaller than or equal to

    bytes. Return the size of nop emitted.

    Defined at line 659 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • Expected getAsBinary (const NewArchiveMember & NM, LLVMContext * Context)

    Defined at line 660 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • ConstantAsMetadata * wrapConstantAsMetadata (const ConstantAsMetadata & CMD, Value * MappedV)

    Defined at line 661 of file llvm/lib/Transforms/Utils/ValueMapper.cpp

  • bool isOriginalBaseResult (Value * V)

    This value is a base pointer that is not generated by RS4GC, i.e. it already

    exists in the code.

    Defined at line 662 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool printMarkupContext (raw_ostream & OS, const char * MainExecutableName)

    Defined at line 662 of file llvm/lib/Support/Unix/Signals.inc

  • unsigned int getCostValue (const Cost & C)

    Get the unsigned Value of given Cost object. Assumes the Cost is always

    non-negative, which is true for both TCK_CodeSize and TCK_Latency, and

    always Valid.

    Defined at line 662 of file llvm/lib/Transforms/IPO/FunctionSpecialization.cpp

  • MachineInstr * foldInlineAsmMemOperand (MachineInstr & MI, ArrayRef<unsigned int> Ops, int FI, const TargetInstrInfo & TII)

    Returns nullptr if not possible to fold.

    Defined at line 662 of file llvm/lib/CodeGen/TargetInstrInfo.cpp

  • bool simplifyAndDCEInstruction (Instruction * I, SmallSetVector<Instruction *, 16> & WorkList, const DataLayout & DL, const TargetLibraryInfo * TLI)

    Defined at line 662 of file llvm/lib/Transforms/Utils/Local.cpp

  • const RopePieceBTreeLeaf * getCN (const void * P)

    ===----------------------------------------------------------------------===//

    RopePieceBTreeIterator Implementation

    ===----------------------------------------------------------------------===//

    Defined at line 663 of file llvm/lib/Support/RewriteRope.cpp

  • void interpretValues (const MachineInstr * CurMI, int & ForwardedRegWorklist, ParamSet & Params, int & ClobberedRegUnits)

    Interpret values loaded into registers by

    Defined at line 663 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void thinlto_codegen_set_cache_pruning_interval (thinlto_code_gen_t cg, int interval)

    Sets the cache pruning interval (in seconds). A negative value disables the

    pruning. An unspecified default value will be applied, and a value of 0 will

    force prunning to occur.

    Defined at line 664 of file llvm/tools/lto/lto.cpp

  • LLVMErrorRef LLVMOrcCreateDynamicLibrarySearchGeneratorForProcess (LLVMOrcDefinitionGeneratorRef * Result, char GlobalPrefx, LLVMOrcSymbolPredicate Filter, void * FilterCtx)

    Get a DynamicLibrarySearchGenerator that will reflect process symbols into

    the JITDylib. On success the resulting generator is owned by the client.

    Ownership is typically transferred by adding the instance to a JITDylib

    using LLVMOrcJITDylibAddGenerator,

    The GlobalPrefix argument specifies the character that appears on the front

    of linker-mangled symbols for the target platform (e.g. '_' on MachO).

    If non-null, this character will be stripped from the start of all symbol

    strings before passing the remaining substring to dlsym.

    The optional Filter and Ctx arguments can be used to supply a symbol name

    filter: Only symbols for which the filter returns true will be visible to

    JIT'd code. If the Filter argument is null then all process symbols will

    be visible to JIT'd code. Note that the symbol name passed to the Filter

    function is the full mangled symbol: The client is responsible for stripping

    the global prefix if present.

    Defined at line 662 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void PrintHelpOptionList (raw_ostream & OS, StringRef Title, std::vector<OptionInfo> & OptionHelp)

    Defined at line 663 of file llvm/lib/Option/OptTable.cpp

  • int createWriter ()

    Defined at line 664 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • void printDatum (json::OStream & J, const char * Key, Value Value)

    Print human-readable output.

    \

    {

    Defined at line 664 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • void printPrefix (raw_ostream & OS, StringRef Prefix)

    Defined at line 664 of file llvm/lib/CAS/OnDiskTrieRawHashMap.cpp

  • template <typename T1, typename T2, typename T3>
    vector getStatepointBundles (std::optional<ArrayRef<T1>> TransitionArgs, std::optional<ArrayRef<T2>> DeoptArgs, ArrayRef<T3> GCArgs)

    Defined at line 664 of file llvm/lib/IR/IRBuilder.cpp

  • int buildReplacementSlices (ArrayRef<OwningBinary<Binary>> ReplacementBinaries, const int & Alignments)

    Defined at line 664 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • bool ProvideOption (Option * Handler, StringRef ArgName, StringRef Value, int argc, const char *const * argv, int & i)

    ProvideOption - For Value, this differentiates between an empty value ("")

    and a null value (StringRef()). The later is accepted for arguments that

    don't allow a value (-foo) the former is rejected (-foo=).

    Defined at line 664 of file llvm/lib/Support/CommandLine.cpp

  • bool isPotentiallyReachable (Attributor & A, const Instruction & FromI, const Instruction * ToI, const Function & ToFn, const AbstractAttribute & QueryingAA, const AA::InstExclusionSetTy * ExclusionSet, std::function<bool (const Function &)> GoBackwardsCB)

    Defined at line 664 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • void printDiff16 (raw_ostream & OS, int16_t Val)

    Defined at line 665 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • LLVMTypeRef LLVMInt1TypeInContext (LLVMContextRef C)

    Obtain an integer type from a context with specified bit width.

    Defined at line 665 of file llvm/lib/IR/Core.cpp

  • unsigned int getEncodedUnaryOpcode (unsigned int Opcode)

    Defined at line 665 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool preservesBackwardDependence (Instruction * Src, Instruction * Dst, unsigned int UnrollLevel, unsigned int JamLevel, bool Sequentialized, Dependence * D)

    Defined at line 665 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • bool AllUsesOfValueWillTrapIfNull (const Value * V, SmallPtrSetImpl<const PHINode *> & PHIs)

    Return true if all users of the specified value will trap if the value is

    dynamically null. PHIs keeps track of any phi nodes we've seen to avoid

    reprocessing them.

    Defined at line 665 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool isSpecialMachOSection (StringRef Section)

    This function returns true if the given data Section name has custom

    subsection-splitting semantics in Mach-O (such as splitting by a fixed size)

    See also ObjFile::parseSections and getRecordSize in lld/MachO/InputFiles.cpp

    Defined at line 666 of file llvm/lib/CodeGen/GlobalMerge.cpp

  • void printMask (raw_ostream & OS, LaneBitmask Val)

    Defined at line 667 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • void checkAsyncContextProjectFunction (const Instruction * I, Function * F)

    Defined at line 667 of file llvm/lib/Transforms/Coroutines/Coroutines.cpp

  • void overlapInput (const std::string & BaseFilename, const std::string & TestFilename, WriterContext * WC, OverlapStats & Overlap, const OverlapFuncFilters & FuncFilter, raw_fd_ostream & OS, bool IsCS)

    Computer the overlap b/w profile BaseFilename and TestFileName,

    and store the program level result to Overlap.

    Defined at line 667 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • Expected getAsBinary (const Archive::Child & C, LLVMContext * Context)

    Defined at line 668 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool leftDistributesOverRight (BinaryOps LOp, BinaryOps ROp)

    Return whether "X LOp (Y ROp Z)" is always equal to

    "(X LOp Y) ROp (X LOp Z)".

    Defined at line 668 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void thinlto_codegen_set_cache_entry_expiration (thinlto_code_gen_t cg, unsigned int expiration)

    Sets the expiration (in seconds) for an entry in the cache. An unspecified

    default value will be applied. A value of 0 will be ignored.

    Defined at line 669 of file llvm/tools/lto/lto.cpp

  • LLVMTypeRef LLVMInt8TypeInContext (LLVMContextRef C)

    Defined at line 668 of file llvm/lib/IR/Core.cpp

  • ConstantInt * createOrdering (int * IRB, AtomicOrdering ord)

    Defined at line 668 of file llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp

  • Value * simplifyTernarylogic (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Defined at line 669 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • bool isKnownBase (Value * V, const int & KnownBases)

    Returns true if V is a known base.

    Defined at line 670 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • LLVMTypeRef LLVMInt16TypeInContext (LLVMContextRef C)

    Defined at line 671 of file llvm/lib/IR/Core.cpp

  • unsigned int extendOpFromFlags (ArgFlagsTy Flags)

    Defined at line 671 of file llvm/lib/CodeGen/GlobalISel/CallLowering.cpp

  • void writeECSymbols (raw_ostream & Out, Kind Kind, bool Deterministic, ArrayRef Members, SymMap & SymMap)

    Defined at line 671 of file llvm/lib/Object/ArchiveWriter.cpp

  • int llvm_readobj_main (int argc, char ** , const llvm::ToolContext & )

    Defined at line 671 of file llvm/tools/llvm-readobj/llvm-readobj.cpp

  • void AddNonNullPointer (Value * Ptr, int & PtrSet, bool IsDereferenced)

    Defined at line 672 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • unsigned int getEncodedBinaryOpcode (unsigned int Opcode)

    Defined at line 672 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • template <class A>
    bool isValidInBitMode (const A & Member)

    Defined at line 673 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool combine (const CodeGenSubRegIndex * Idx, SmallVectorImpl<const CodeGenSubRegIndex *> & Vec)

    Try to combine Idx's compose map into Vec if it is compatible.

    Return false if it's not possible.

    Defined at line 673 of file llvm/utils/TableGen/RegisterInfoEmitter.cpp

  • void printLocationStats (json::OStream & J, const char * Key, std::vector<SaturatingUINT64> & LocationStats)

    Defined at line 673 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • void thinlto_codegen_set_final_cache_size_relative_to_available_space (thinlto_code_gen_t cg, unsigned int percentage)

    Sets the maximum cache size that can be persistent across build, in terms of

    percentage of the available space on the disk. Set to 100 to indicate

    no limit, 50 to indicate that the cache size will not be left over half the

    available space. A value over 100 will be reduced to 100, a value of 0 will

    be ignored. An unspecified default value will be applied.

    The formula looks like:

    AvailableSpace = FreeSpace + ExistingCacheSize

    NewCacheSize = AvailableSpace * P/100

    Defined at line 674 of file llvm/tools/lto/lto.cpp

  • LLVMTypeRef LLVMInt32TypeInContext (LLVMContextRef C)

    Defined at line 674 of file llvm/lib/IR/Core.cpp

  • bool constantFoldTerminators (Loop & L, DominatorTree & DT, LoopInfo & LI, ScalarEvolution & SE, MemorySSAUpdater * MSSAU, bool & IsLoopDeleted)

    Turn branches and switches with known constant conditions into unconditional

    branches.

    Defined at line 674 of file llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp

  • Error macho2yaml (raw_ostream & Out, const object::MachOUniversalBinary & Obj, unsigned int RawSegments)

    Defined at line 674 of file llvm/tools/obj2yaml/macho2yaml.cpp

  • Error removeNotes (Object & Obj, endianness Endianness, ArrayRef NotesToRemove, function_ref ErrorCallback)

    Defined at line 674 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • Instruction * foldVecExtTruncToExtElt (TruncInst & Trunc, InstCombinerImpl & IC)

    Whenever an element is extracted from a vector, optionally shifted down, and

    then truncated, canonicalize by converting it to a bitcast followed by an

    extractelement.

    Examples (little endian):

    trunc (extractelement

    <

    4 x i64> %X, 0) to i32

    --->

    extractelement

    <

    8 x i32> (bitcast

    <

    4 x i64> %X to

    <

    8 x i32>), i32 0

    trunc (lshr (extractelement

    <

    4 x i32> %X, 0), 8) to i8

    --->

    extractelement

    <

    16 x i8> (bitcast

    <

    4 x i32> %X to

    <

    16 x i8>), i32 1

    Defined at line 674 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • APInt stripAndComputeConstantOffsets (const DataLayout & DL, Value *& V)

    Compute the base pointer and cumulative constant offsets for V.

    This strips all constant offsets off of V, leaving it the base pointer, and

    accumulates the total constant offset applied in the returned constant.

    It returns zero if there are no constant offsets applied.

    This is very similar to stripAndAccumulateConstantOffsets(), except it

    normalizes the offset bitwidth to the stripped pointer type, not the

    original pointer type.

    Defined at line 675 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Expected<Config> parseCommandLine (int Argc, char ** Argv)

    Defined at line 675 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • bool isKnownLessThan (ScalarEvolution * SE, const SCEV * S, const SCEV * Size)

    Compare to see if S is less than Size, using

    isKnownNegative(S - Size)

    with some extra checking if S is an AddRec and we can prove less-than using

    the loop bounds.

    Defined at line 675 of file llvm/lib/Analysis/Delinearization.cpp

  • void sortAndUniqueRegisters (int & M)

    ===----------------------------------------------------------------------===//

    CodeGenRegisterClass

    ===----------------------------------------------------------------------===//

    Defined at line 676 of file llvm/utils/TableGen/Common/CodeGenRegisters.cpp

  • void setKnownBase (Value * V, bool IsKnownBase, int & KnownBases)

    Caches the IsKnownBase flag for a value and asserts that it wasn't present

    in the cache before.

    Defined at line 676 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • Instruction * getBranchInsertPoint (RegInfo & RI)

    Returns the instruction at which to hoist the dependent condition values and

    insert the CHR branch for a region. This is the terminator branch in the

    entry block or the first select in the entry block, if any.

    Defined at line 676 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • int getMatchedEntries (InstructionMapper & Mapper)

    Find all matches in the global outlined hash tree.

    It's quadratic complexity in theory, but it's nearly linear in practice

    since the length of outlined sequences are small within a block.

    Defined at line 676 of file llvm/lib/CodeGen/MachineOutliner.cpp

  • bool processCallSite (CallBase & CB, LazyValueInfo * LVI)

    Infer nonnull attributes for the arguments at the specified callsite.

    Defined at line 676 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • Cursor maybeLexSymbol (Cursor C, MIToken & Token)

    Defined at line 677 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • void HandleInlinedEHPad (InvokeInst * II, BasicBlock * FirstNewBlock, ClonedCodeInfo & InlinedCodeInfo)

    If we inlined an invoke site, we need to convert calls

    in the body of the inlined function into invokes.

    II is the invoke instruction being inlined. FirstNewBlock is the first

    block of the inlined code (the last block is the end of the function),

    and InlineCodeInfo is information about the code that got inlined.

    Defined at line 677 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • template <typename T>
    Expected fromCodeViewRecordImpl (CVRecord Type)

    Defined at line 678 of file llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp

  • bool canBeHidden (const GlobalValue * GV, const MCAsmInfo & MAI)

    Defined at line 679 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • Expected checkParameter (StringRef Label, size_t Max, optional Value, optional Default, StringRef Path, StringRef TableName)

    Defined at line 679 of file llvm/lib/CAS/OnDiskTrieRawHashMap.cpp

  • bool matchAccessTags (const MDNode * A, const MDNode * B, const MDNode ** GenericTag)

    matchTags - Return true if the given couple of accesses are allowed to

    overlap. If

    Defined at line 679 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

  • void getCopyToPartsVector (SelectionDAG & DAG, const SDLoc & dl, SDValue Val, SDValue * Parts, unsigned int NumParts, MVT PartVT, const Value * V, std::optional<CallingConv::ID> CallConv)

    getCopyToPartsVector - Create a series of nodes that contain the specified

    value split into legal parts.

    Defined at line 687 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • pair cloneFrom (VPBlockBase * Entry)

    Clone the CFG for all nodes reachable from

    this includes cloning

    the blocks and their recipes. Operands of cloned recipes will NOT be updated.

    Remapping of operands must be done separately. Returns a pair with the new

    entry and exiting blocks of the cloned region. If

    isn't part of a

    region, return nullptr for the exiting block.

    Defined at line 678 of file llvm/lib/Transforms/Vectorize/VPlan.cpp

  • void thinlto_codegen_set_cache_size_bytes (thinlto_code_gen_t cg, unsigned int max_size_bytes)

    Sets the maximum size of the cache directory (in bytes). A value over the

    amount of available space on the disk will be reduced to the amount of

    available space. An unspecified default value will be applied. A value of 0

    will be ignored.

    Defined at line 679 of file llvm/tools/lto/lto.cpp

  • void thinlto_codegen_set_cache_size_megabytes (thinlto_code_gen_t cg, unsigned int max_size_megabytes)

    Same as thinlto_codegen_set_cache_size_bytes, except the maximum size is in

    megabytes (2^20 bytes).

    Defined at line 684 of file llvm/tools/lto/lto.cpp

  • LLVMErrorRef LLVMOrcCreateDynamicLibrarySearchGeneratorForPath (LLVMOrcDefinitionGeneratorRef * Result, const char * FileName, char GlobalPrefix, LLVMOrcSymbolPredicate Filter, void * FilterCtx)

    Get a LLVMOrcCreateDynamicLibararySearchGeneratorForPath that will reflect

    library symbols into the JITDylib. On success the resulting generator is

    owned by the client. Ownership is typically transferred by adding the

    instance to a JITDylib using LLVMOrcJITDylibAddGenerator,

    The GlobalPrefix argument specifies the character that appears on the front

    of linker-mangled symbols for the target platform (e.g. '_' on MachO).

    If non-null, this character will be stripped from the start of all symbol

    strings before passing the remaining substring to dlsym.

    The optional Filter and Ctx arguments can be used to supply a symbol name

    filter: Only symbols for which the filter returns true will be visible to

    JIT'd code. If the Filter argument is null then all library symbols will

    be visible to JIT'd code. Note that the symbol name passed to the Filter

    function is the full mangled symbol: The client is responsible for stripping

    the global prefix if present.

    THIS API IS EXPERIMENTAL AND LIKELY TO CHANGE IN THE NEAR FUTURE!

    Defined at line 687 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMInt64TypeInContext (LLVMContextRef C)

    Defined at line 677 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMInt128TypeInContext (LLVMContextRef C)

    Defined at line 680 of file llvm/lib/IR/Core.cpp

  • void emitRetireControlUnitInfo (const CodeGenProcModel & ProcModel, raw_ostream & OS)

    Defined at line 680 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • template <typename T0, typename T1, typename T2, typename T3>
    CallInst * CreateGCStatepointCallCommon (IRBuilderBase * Builder, uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualCallee, uint32_t Flags, ArrayRef<T0> CallArgs, std::optional<ArrayRef<T1>> TransitionArgs, std::optional<ArrayRef<T2>> DeoptArgs, ArrayRef<T3> GCArgs, const Twine & Name)

    Defined at line 680 of file llvm/lib/IR/IRBuilder.cpp

  • void AddNonNullPointersByInstruction (Instruction * I, int & PtrSet)

    Defined at line 680 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • void emitBinaryParser (raw_ostream & OS, indent Indent, const InstructionEncoding & Encoding, const OperandInfo & OpInfo)

    Defined at line 680 of file llvm/utils/TableGen/DecoderEmitter.cpp

  • void printCFI (raw_ostream & OS, const MCCFIInstruction & CFI, const TargetRegisterInfo * TRI)

    Defined at line 680 of file llvm/lib/CodeGen/MachineOperand.cpp

  • bool mayHaveSideEffects (MachineInstr & MI)

    Defined at line 681 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp

  • VendorType parseVendor (StringRef VendorName)

    Defined at line 682 of file llvm/lib/TargetParser/Triple.cpp

  • LLVMTypeRef LLVMIntTypeInContext (LLVMContextRef C, unsigned int NumBits)

    Defined at line 683 of file llvm/lib/IR/Core.cpp

  • StringRef getTypeNamePrefix (StringRef Name)

    Defined at line 683 of file llvm/lib/Linker/IRMover.cpp

  • void initializeMachineBlockPlacementLegacyPassOnce (PassRegistry & Registry)

    Defined at line 684 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • StringRef GetSymbolValueName (StorageClass SC)

    Defined at line 685 of file llvm/tools/llvm-readobj/XCOFFDumper.cpp

  • Instruction * combineLoadToOperationType (InstCombinerImpl & IC, LoadInst & Load)

    Combine loads to match the type of their uses' value after looking

    through intervening bitcasts.

    The core idea here is that if the result of a load is used in an operation,

    we should load the type most conducive to that operation. For example, when

    loading an integer and converting that immediately to a pointer, we should

    instead directly load a pointer.

    However, this routine must never change the width of a load or the number of

    loads as that would introduce a semantic change. This combine is expected to

    be a semantic no-op which just allows loads to more closely model the types

    of their consuming operations.

    Currently, we also refuse to change the precise type used for an atomic load

    or a volatile load. This is debatable, and might be reasonable to change

    later. However, it is risky in case some backend or other part of LLVM is

    relying on the exact type loaded to select appropriate atomic operations.

    Defined at line 685 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • pair findTargetSubtable (StringRef Name)

    Find the segment of

    for intrinsics with the same

    target as

    or the generic table if

    is not target specific.

    Returns the relevant slice of

    and the target

    name.

    Defined at line 686 of file llvm/lib/IR/Intrinsics.cpp

  • LLVMTypeRef LLVMInt1Type ()

    Obtain an integer type from the global context with a specified bit

    width.

    Defined at line 687 of file llvm/lib/IR/Core.cpp

  • void warnInvalidObjectForFileMode (Twine Name)

    Defined at line 687 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool areBothVectorOrScalar (Value * First, Value * Second)

    Returns true if First and Second values are both scalar or both vector.

    Defined at line 687 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • uint64_t getRedzoneSizeForScale (int MappingScale)

    Defined at line 688 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • Constant * computePointerDifference (const DataLayout & DL, Value * LHS, Value * RHS)

    Compute the constant difference between two pointer values.

    If the difference is not a constant, returns zero.

    Defined at line 688 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void printDebugLoc (const DebugLoc & DL, raw_ostream & CommentOS, const LLVMContext & Ctx)

    Defined at line 688 of file llvm/lib/CodeGen/LiveDebugVariables.cpp

  • Constant * getConstantAtOffset (Constant * Base, APInt Offset, const DataLayout & DL)

    If this Offset points exactly to the start of an aggregate element, return

    that element, otherwise return nullptr.

    Defined at line 688 of file llvm/lib/Analysis/ConstantFolding.cpp

  • void remapSectionsAndSymbols (const llvm::Triple & TargetTriple, RuntimeDyld & Dyld, TrivialMemoryManager & MemMgr)

    Scatter sections in all directions!

    Remaps section addresses for -verify mode. The following command line options

    can be used to customize the layout of the memory within the phony target's

    address space:

    -target-addr-start

    -- Specify where the phony target address range starts.

    -target-addr-end

    <e

    > -- Specify where the phony target address range ends.

    -target-section-sep

    <d

    > -- Specify how big a gap should be left between the

    end of one section and the start of the next.

    Defaults to zero. Set to something big

    (e.g. 1

    <

    <

    32) to stress-test stubs, GOTs, etc.

    Defined at line 688 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • void buildFrameDebugInfo (Function & F, coro::Shape & Shape, FrameDataInfo & FrameData)

    Build artificial debug info for C++ coroutine frames to allow users to

    inspect the contents of the frame directly

    Create Debug information for coroutine frame with debug name "__coro_frame".

    The debug information for the fields of coroutine frame is constructed from

    the following way:

    1. For all the value in the Frame, we search the use of dbg.declare to find

    the corresponding debug variables for the value. If we can find the

    debug variable, we can get full and accurate debug information.

    2. If we can't get debug information in step 1 and 2, we could only try to

    build the DIType by Type. We did this in solveDIType. We only handle

    integer, float, double, integer type and struct type for now.

    Defined at line 688 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • llvm::ModulePass * createCheckDebugifyModulePass (bool Strip, StringRef NameOfWrappedPass, int * StatsMap, DebugifyMode Mode, DebugInfoPerPass * DebugInfoBeforePass, StringRef OrigDIVerifyBugsReportFilePath)

    Defined at line of file

  • llvm::FunctionPass * createCheckDebugifyFunctionPass (bool Strip, StringRef NameOfWrappedPass, int * StatsMap, DebugifyMode Mode, DebugInfoPerPass * DebugInfoBeforePass, StringRef OrigDIVerifyBugsReportFilePath)

    Defined at line of file

  • bool rightDistributesOverLeft (BinaryOps LOp, BinaryOps ROp)

    Return whether "(X LOp Y) ROp Z" is always equal to

    "(X ROp Z) LOp (Y ROp Z)".

    Defined at line 689 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • unique_ptr createRegInfo (const object::ObjectFile & Obj)

    Defined at line 689 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • bool isDeadRecipe (VPRecipeBase & R)

    Returns true if

    is dead and can be removed.

    Defined at line 689 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void TestLineTableHelper (endianness ByteOrder, const LineTable & LT)

    Defined at line 689 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • bool isECObject (object::SymbolicFile & Obj)

    Defined at line 689 of file llvm/lib/Object/ArchiveWriter.cpp

  • SDValue lowerMasksToReg (const SDValue & ValArg, const EVT & ValLoc, const SDLoc & DL, SelectionDAG & DAG)

    Lowers masks values (v*i1) to the local register values

    Defined at line 689 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • void findIrreducibleHeaders (const BlockFrequencyInfoImplBase & BFI, const IrreducibleGraph & G, const std::vector<const IrreducibleGraph::IrrNode *> & SCC, LoopData::NodeList & Headers, LoopData::NodeList & Others)

    Find extra irreducible headers.

    Find entry blocks and other blocks with backedges, which exist when

    contains irreducible sub-SCCs.

    Defined at line 689 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • LLVMTypeRef LLVMInt8Type ()

    Defined at line 690 of file llvm/lib/IR/Core.cpp

  • void getImpliedEnabledFeatures (FeatureBitset & Bits, const FeatureBitset & Implies)

    For each feature that is (transitively) implied by this feature, set it.

    Defined at line 690 of file llvm/lib/TargetParser/X86TargetParser.cpp

  • BasicBlock * getInstrBB (CFGMST<Edge, BBInfo> & MST, Edge & E, const int & ExecBlocks)

    Defined at line 690 of file llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp

  • void replaceSlices (LLVMContext & LLVMCtx, ArrayRef<OwningBinary<Binary>> InputBinaries, const int & Alignments, StringRef OutputFileName, ArrayRef<InputFile> ReplacementFiles)

    Defined at line 690 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • void thinlto_codegen_set_cache_size_files (thinlto_code_gen_t cg, unsigned int max_size_files)

    Sets the maximum number of files in the cache directory. An unspecified

    default value will be applied. A value of 0 will be ignored.

    Defined at line 691 of file llvm/tools/lto/lto.cpp

  • bool getDataDeps (const MachineInstr & UseMI, SmallVectorImpl<DataDep> & Deps, const MachineRegisterInfo * MRI)

    Get the input data dependencies that must be ready before UseMI can issue.

    Return true if UseMI has any physreg operands.

    Defined at line 691 of file llvm/lib/CodeGen/MachineTraceMetrics.cpp

  • void performReadOperation (ArchiveOperation Operation, object::Archive * OldArchive)

    Defined at line 691 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool checkDependency (Instruction * Src, Instruction * Dst, unsigned int UnrollLevel, unsigned int JamLevel, bool Sequentialized, DependenceInfo & DI)

    Check whether it is semantically safe Src and Dst considering any potential

    dependency between them.

    Parameters

    UnrollLevel The level of the loop being unrolled
    JamLevel The level of the loop being jammed; if Src and Dst are on different levels, the outermost common loop counts as jammed level

    Returns

    true if is safe and false if there is a dependency violation.

    Defined at line 691 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • const char * stringForDecisionType (ModRMDecisionType dt)

    stringForDecisionType - Returns a statically-allocated string corresponding

    to a particular decision type.

    Parameters

    dt - The decision type.

    Returns

    - A pointer to the statically-allocated string (e.g.,

    "MODRM_ONEENTRY" for MODRM_ONEENTRY).

    Defined at line 692 of file llvm/utils/TableGen/X86DisassemblerTables.cpp

  • bool mergeBlocksIntoPredecessors (Loop & L, DominatorTree & DT, LoopInfo & LI, MemorySSAUpdater * MSSAU, ScalarEvolution & SE)

    Defined at line 692 of file llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp

  • LLVMTypeRef LLVMInt16Type ()

    Defined at line 693 of file llvm/lib/IR/Core.cpp

  • void initializeX86LowerAMXIntrinsicsLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 693 of file llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp

  • Cursor maybeLexNewline (Cursor C, MIToken & Token)

    Defined at line 693 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • bool getFSqrtDivOptPattern (Instruction * Div, SmallPtrSetImpl<Instruction *> & R1, SmallPtrSetImpl<Instruction *> & R2)

    If we have the following pattern,

    X = 1.0/sqrt(a)

    R1 = X * X

    R2 = a/sqrt(a)

    then this method collects all the instructions that match R1 and R2.

    Defined at line 693 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • void addData (SmallVectorImpl<char> & DataBytes, MCSectionWasm & DataSection)

    Defined at line 693 of file llvm/lib/MC/WasmObjectWriter.cpp

  • uint64_t GetCtorAndDtorPriority (Triple & TargetTriple)

    Defined at line 694 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • basic_string getNameForFeatureBitset (ArrayRef<const Record *> FeatureBitset)

    Defined at line 694 of file llvm/utils/TableGen/InstrInfoEmitter.cpp

  • void emitRegisterFileInfo (const CodeGenProcModel & ProcModel, unsigned int NumRegisterFiles, unsigned int NumCostEntries, raw_ostream & OS)

    Defined at line 694 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • void printRuntimeFunction (const COFFObjectFile * Obj, const RuntimeFunction & RF)

    Prints out the given RuntimeFunction struct for x64, assuming that Obj is

    pointing to an executable file.

    Defined at line 694 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • void loadInput (const WeightedFile & Input, SymbolRemapper * Remapper, const InstrProfCorrelator * Correlator, StringRef ProfiledBinary, WriterContext * WC, const object::BuildIDFetcher * BIDFetcher, const ProfCorrelatorKind * BIDFetcherCorrelatorKind)

    Load an input into a writer context.

    Defined at line 694 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • MCSymbolAttr MCAttrForString (StringRef Type)

    Defined at line 695 of file llvm/lib/MC/MCParser/ELFAsmParser.cpp

  • SmallBitVector buildUseMask (int VF, ArrayRef Mask, UseMask MaskArg)

    Prepares a use bitset for the given mask either for the first argument or

    for the second.

    Defined at line 695 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void thinlto_codegen_set_savetemps_dir (thinlto_code_gen_t cg, const char * save_temps_dir)

    Sets the path to a directory to use as a storage for temporary bitcode files.

    The intention is to make the bitcode files available for debugging at various

    stage of the pipeline.

    Defined at line 696 of file llvm/tools/lto/lto.cpp

  • bool canCreateThunkFor (Function * F)

    Whether this function may be replaced by a forwarding thunk.

    Defined at line 696 of file llvm/lib/Transforms/IPO/MergeFunctions.cpp

  • bool canPredictSuccessors (const MachineBasicBlock & MBB)

    Defined at line 696 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • Expected TestOptimizer (BugDriver & BD, unique_ptr Test, unique_ptr Safe)

    This is the predicate function used to check to see if the "Test" portion of

    the program is misoptimized. If so, return true. In any case, both module

    arguments are deleted.

    Defined at line 696 of file llvm/tools/bugpoint/Miscompilation.cpp

  • unsigned int getEncodedRMWOperation (BinOp Op)

    Defined at line 696 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • void scalarizeMaskedExpandLoad (const DataLayout & DL, bool HasBranchDivergence, CallInst * CI, DomTreeUpdater * DTU, bool & ModifiedDT)

    Defined at line 696 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • MCInstrAnalysis * createX86MCInstrAnalysis (const MCInstrInfo * Info)

    Defined at line 697 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp

  • bool getX86CpuIDAndInfoEx (unsigned int value, unsigned int subleaf, unsigned int * rEAX, unsigned int * rEBX, unsigned int * rECX, unsigned int * rEDX)

    getX86CpuIDAndInfoEx - Execute the specified cpuid with subleaf and return

    the 4 values in the specified arguments. If we can't run cpuid on the host,

    return true.

    Defined at line 697 of file llvm/lib/TargetParser/Host.cpp

  • bool isKnownTypeIdMember (Metadata * TypeId, const DataLayout & DL, Value * V, uint64_t COffset)

    Defined at line 697 of file llvm/lib/Transforms/IPO/LowerTypeTests.cpp

  • basic_string getBlockName (const MachineBasicBlock * BB)

    Helper to print the name of a MBB.

    Only used by debug logging.

    Defined at line 698 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • void ProfileListInit (FoldingSetNodeID & ID, ArrayRef Elements, const RecTy * EltTy)

    Defined at line 698 of file llvm/lib/TableGen/Record.cpp

  • Value * foldSelectICmpAndZeroShl (const ICmpInst * Cmp, Value * TVal, Value * FVal, InstCombiner::BuilderTy & Builder)

    We want to turn:

    (select (icmp eq (and X, C1), 0), 0, (shl [nsw/nuw] X, C2));

    iff C1 is a mask and the number of its leading zeros is equal to C2

    into:

    shl X, C2

    Defined at line 698 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool mayLoadFromGOTOrConstantPool (MachineInstr & MI)

    Return true if this machine instruction loads from global offset table or

    constant pool.

    Defined at line 699 of file llvm/lib/CodeGen/MachineSink.cpp

  • const char * getOptionHelpGroup (const OptTable & Opts, OptSpecifier Id)

    Defined at line 700 of file llvm/lib/Option/OptTable.cpp

  • bool printAsmVRegister (const MachineOperand & MO, char Mode, raw_ostream & O)

    Defined at line 700 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • Twine genName (StringRef suffix)

    Defined at line 701 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • void thinlto_set_generated_objects_dir (thinlto_code_gen_t cg, const char * save_temps_dir)

    Set the path to a directory where to save generated object files. This

    path can be used by a linker to request on-disk files instead of in-memory

    buffers. When set, results are available through

    thinlto_module_get_object_file() instead of thinlto_module_get_object().

    Defined at line 701 of file llvm/tools/lto/lto.cpp

  • bool CanFlattenLoopPair (FlattenInfo & FI, DominatorTree * DT, LoopInfo * LI, ScalarEvolution * SE, AssumptionCache * AC, const TargetTransformInfo * TTI)

    Defined at line 701 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • int findJumpTableIndex (const MachineBasicBlock & MBB)

    Defined at line 702 of file llvm/lib/CodeGen/MachineBasicBlock.cpp

  • Cursor maybeLexEscapedIRValue (Cursor C, MIToken & Token, function_ref ErrorCallback)

    Defined at line 702 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp

  • template <typename TI, typename T>
    bool updateCycleLoopInfo (TI * LCI, BasicBlock * CallBrBlock, BasicBlock * CallBrTarget, BasicBlock * Succ)

    Helper function to update the cycle or loop information after inserting a

    new block between a callbr instruction and one of its target blocks. Adds

    the new block to the innermost cycle or loop that the callbr instruction and

    the original target block share.

    cycle or loop information to update

    block containing the callbr instruction

    new target block of the callbr instruction

    original target block of the callbr instruction

    Defined at line 702 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void LLVMInitializeX86TargetMC ()

    Force static initialization.

    Defined at line 702 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp

  • OSType parseOS (StringRef OSName)

    Defined at line 703 of file llvm/lib/TargetParser/Triple.cpp

  • void moveFunctionData (Function & Old, Function & New, DenseMap<Value *, BasicBlock *> & NewEnds)

    Move each BasicBlock in

    to

    Parameters

    Old [in] - The function to move the basic blocks from.
    New [in] - The function to move the basic blocks to.
    NewEnds [out] - The return blocks of the new overall function.

    Defined at line 703 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • Value * getIdentityValue (BinaryOps Opcode, Value * V)

    This function returns identity value for given opcode, which can be used to

    factor patterns like (X * 2) + X ==> (X * 2) + (X * 1) ==> X * (2 + 1).

    Defined at line 704 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void AssertSorted (MemoryDependenceResults::NonLocalDepInfo & Cache, int Count)

    This method is used when -debug is specified to verify that cache arrays

    are properly kept sorted.

    Defined at line 704 of file llvm/lib/Analysis/MemoryDependenceAnalysis.cpp

  • unsigned int getExtLoadOpcForExtend (unsigned int ExtOpc)

    Defined at line 704 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • bool updateOperand (Instruction * Inst, unsigned int Idx, Instruction * Mat)

    Updates the operand at Idx in instruction Inst with the result of

    instruction Mat. If the instruction is a PHI node then special

    handling for duplicate values from the same incoming basic block is

    required.

    Returns

    The update will always succeed, but the return value indicated if

    Mat was used for the update or not.

    Defined at line 704 of file llvm/lib/Transforms/Scalar/ConstantHoisting.cpp

  • bool dumpObjectFile (ObjectFile & Obj, DWARFContext & DICtx, const Twine & Filename, raw_ostream & OS)

    Defined at line 704 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • std::optional<std::pair<bool, bool>> parseFunctionPipelineName (StringRef Name)

    Defined at line 705 of file llvm/lib/Passes/PassBuilder.cpp

  • Value * getShiftedValue (Value * V, unsigned int NumBits, bool isLeftShift, InstCombinerImpl & IC, const DataLayout & DL)

    When canEvaluateShifted() returns true for an expression, this function

    inserts the new computation that produces the shifted value.

    Defined at line 705 of file llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  • void AddNodeIDOpcode (FoldingSetNodeID & ID, unsigned int OpC)

    AddNodeIDOpcode - Add the node opcode to the NodeID data.

    Defined at line 706 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • lto_bool_t thinlto_codegen_set_pic_model (thinlto_code_gen_t cg,  )

    Sets which PIC code model to generate.

    Returns true on error (check lto_get_error_message() for details).

    Defined at line 706 of file llvm/tools/lto/lto.cpp

  • unsigned int calcUniqueIDUpdateFlagsAndSize (const GlobalObject * GO, StringRef SectionName, SectionKind Kind, const TargetMachine & TM, MCContext & Ctx, Mangler & Mang, unsigned int & Flags, unsigned int & EntrySize, unsigned int & NextUniqueID, const bool Retain, const bool ForceUnique)

    Calculate an appropriate unique ID for a section, and update Flags,

    EntrySize and NextUniqueID where appropriate.

    Defined at line 706 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • void getImpliedDisabledFeatures (FeatureBitset & Bits, unsigned int Value)

    Create bit vector of features that are implied disabled if the feature

    passed in Value is disabled.

    Defined at line 707 of file llvm/lib/TargetParser/X86TargetParser.cpp

  • bool tryToShortenEnd (Instruction * DeadI, int & IntervalMap, int64_t & DeadStart, uint64_t & DeadSize)

    Defined at line 707 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • Error macho2yaml (llvm::raw_ostream & Out, const llvm::object::Binary & Obj, unsigned int RawSegments)

    Defined at line 709 of file llvm/tools/obj2yaml/macho2yaml.cpp

  • void printExtendedName (raw_ostream & OS, const DINode * Node, const DILocation * DL)

    Defined at line 709 of file llvm/lib/CodeGen/LiveDebugVariables.cpp

  • bool isAnyArm64COFF (object::SymbolicFile & Obj)

    Defined at line 710 of file llvm/lib/Object/ArchiveWriter.cpp

  • void AddNodeIDValueTypes (FoldingSetNodeID & ID, SDVTList VTList)

    AddNodeIDValueTypes - Value type lists are intern'd so we can represent them

    solely with their pointer.

    Defined at line 712 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDNode * findGluedUser (SDNode * N)

    findGluedUser - Find the representative use of a glue value by walking

    the use chain.

    Defined at line 712 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp

  • AllocaInst * CreateEntryBlockAlloca (Function * TheFunction, StringRef VarName)

    CreateEntryBlockAlloca - Create an alloca instruction in the entry block of

    the function. This is used for mutable variables etc.

    Defined at line 712 of file llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp

  • Value * simplifyByDomEq (unsigned int Opcode, Value * Op0, Value * Op1, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Test if there is a dominating equivalence condition for the

    two operands. If there is, try to reduce the binary operation

    between the two operands.

    Example: Op0 - Op1 --> 0 when Op0 == Op1

    Defined at line 712 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isAssociative (const COFFSection & Section)

    Defined at line 713 of file llvm/lib/MC/WinCOFFObjectWriter.cpp

  • void copyMetadataIfPresent (Function * From, Function * To, StringRef Kind)

    Copy all metadata of a specific kind from one function to another.

    Defined at line 713 of file llvm/lib/Transforms/IPO/MergeFunctions.cpp

  • LLVMErrorRef LLVMOrcCreateStaticLibrarySearchGeneratorForPath (LLVMOrcDefinitionGeneratorRef * Result, LLVMOrcObjectLayerRef ObjLayer, const char * FileName)

    Get a LLVMOrcCreateStaticLibrarySearchGeneratorForPath that will reflect

    static library symbols into the JITDylib. On success the resulting

    generator is owned by the client. Ownership is typically transferred by

    adding the instance to a JITDylib using LLVMOrcJITDylibAddGenerator,

    Call with the optional TargetTriple argument will succeed if the file at

    the given path is a static library or a MachO universal binary containing a

    static library that is compatible with the given triple. Otherwise it will

    return an error.

    THIS API IS EXPERIMENTAL AND LIKELY TO CHANGE IN THE NEAR FUTURE!

    Defined at line 713 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMInt32Type ()

    Defined at line 696 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMInt64Type ()

    Defined at line 699 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMInt128Type ()

    Defined at line 702 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMIntType (unsigned int NumBits)

    Defined at line 705 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetIntTypeWidth (LLVMTypeRef IntegerTy)

    Defined at line 709 of file llvm/lib/IR/Core.cpp

  • RopePieceBTreeNode * getRoot (void * P)

    ===----------------------------------------------------------------------===//

    RopePieceBTree Implementation

    ===----------------------------------------------------------------------===//

    Defined at line 714 of file llvm/lib/Support/RewriteRope.cpp

  • void AdjustStackOffset (MachineFrameInfo & MFI, int FrameIdx, bool StackGrowsDown, int64_t & Offset, Align & MaxAlign)

    AdjustStackOffset - Helper function used to adjust the stack frame offset.

    Defined at line 714 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • LLVMTypeRef LLVMHalfTypeInContext (LLVMContextRef C)

    Obtain a 16-bit floating point type from a context.

    Defined at line 715 of file llvm/lib/IR/Core.cpp

  • bool CantUseSP (const MachineFrameInfo & MFI)

    ===----------------------------------------------------------------------===//

    Stack Frame Processing methods

    ===----------------------------------------------------------------------===//

    Defined at line 716 of file llvm/lib/Target/X86/X86RegisterInfo.cpp

  • DebugLoc getDebugLocFromInstOrOperands (Instruction * I)

    Look for a meaningful debug location on the instruction or its operands.

    Defined at line 716 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • BinaryOps getBinOpsForFactorization (BinaryOps TopOpcode, BinaryOperator * Op, Value *& LHS, Value *& RHS, BinaryOperator * OtherOp)

    This function predicates factorization using distributive laws. By default,

    it just returns the 'Op' inputs. But for special-cases like

    'add(shl(X, 5), ...)', this function will have TopOpcode == Instruction::Add

    and Op = shl(X, 5). The 'shl' is treated as the more general 'mul X, 32' to

    allow more factorization opportunities.

    Defined at line 716 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void PrintRType (const uint64_t cputype, const unsigned int r_type)

    Defined at line 716 of file llvm/tools/llvm-objdump/MachODump.cpp

  • template <bool IsPoisonOnly = false>
    SmallBitVector isUndefVector (const Value * V, const SmallBitVector & UseMask)

    Checks if the given value is actually an undefined constant vector.

    Also, if the

    is not empty, tries to check if the non-masked

    elements actually mask the insertelement buildvector, if any.

    Defined at line 716 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void AddNodeIDOperands (FoldingSetNodeID & ID, ArrayRef<SDValue> Ops)

    AddNodeIDOperands - Various routines for adding operands to the NodeID data.

    Defined at line 717 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void splitSchedReadWrites (const ConstRecVec & RWDefs, ConstRecVec & WriteDefs, ConstRecVec & ReadDefs)

    Defined at line 717 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • void writeToResolutionFile (raw_ostream & OS, InputFile * Input, ArrayRef<SymbolResolution> Res)

    Defined at line 717 of file llvm/lib/LTO/LTO.cpp

  • void printRuntimeFunctionRels (const COFFObjectFile * Obj, const RuntimeFunction & RF, uint64_t SectionOffset, const std::vector<RelocationRef> & Rels)

    Prints out the given RuntimeFunction struct for x64, assuming that Obj is

    pointing to an object file. Unlike executable, fields in RuntimeFunction

    struct are filled with zeros, but instead there are relocations pointing to

    them so that the linker will fill targets' RVAs to the fields at link

    time. This function interprets the relocations to find the data to be used

    in the resulting executable.

    Defined at line 717 of file llvm/tools/llvm-objdump/COFFDump.cpp

  • bool shouldGenerateData (const Function & F)

    Defined at line 718 of file llvm/lib/Passes/StandardInstrumentations.cpp

  • Error handleUserSection (const NewSectionInfo & NewSection, function_ref F)

    Defined at line 719 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • void getPHIDeps (const MachineInstr & UseMI, SmallVectorImpl<DataDep> & Deps, const MachineBasicBlock * Pred, const MachineRegisterInfo * MRI)

    Get the input data dependencies of a PHI instruction, using Pred as the

    preferred predecessor.

    This will add at most one dependency to Deps.

    Defined at line 719 of file llvm/lib/CodeGen/MachineTraceMetrics.cpp

  • bool allUsesOfLoadedValueWillTrapIfNull (const GlobalVariable * GV)

    Return true if all uses of any loads from GV will trap if the loaded value

    is null. Note that this also permits comparisons of the loaded value

    against null, as a special case.

    Defined at line 719 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool replaceExtractElements (InsertElementInst * InsElt, ExtractElementInst * ExtElt, InstCombinerImpl & IC)

    If we have insertion into a vector that is wider than the vector that we

    are extracting from, try to widen the source vector to allow a single

    shufflevector to replace one or more insert/extract pairs.

    Defined at line 719 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • bool getX86XCR0 (unsigned int * rEAX, unsigned int * rEDX)

    Read control register 0 (XCR0). Used to detect features such as AVX.

    Defined at line 720 of file llvm/lib/TargetParser/Host.cpp

  • void Passv64i1ArgInRegs (const SDLoc & DL, SelectionDAG & DAG, SDValue & Arg, SmallVectorImpl<std::pair<Register, SDValue>> & RegsToPass, CCValAssign & VA, CCValAssign & NextVA, const X86Subtarget & Subtarget)

    Breaks v64i1 value into two registers and adds the new node to the DAG

    Defined at line 720 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • int llvm_libtool_darwin_main (int argc, char ** , const llvm::ToolContext & )

    Defined at line 730 of file llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp

  • BasicBlock * CreateFailBB (Function * F, const TargetLowering & TLI)

    CreateFailBB - Create a basic block to jump to when the stack protector

    check fails.

    Defined at line 721 of file llvm/lib/CodeGen/StackProtector.cpp

  • bool shouldGenerateData (const MachineFunction & MF)

    Defined at line 722 of file llvm/lib/Passes/StandardInstrumentations.cpp

  • void forEachUser (const Value * User, SmallPtrSet<const Value *, 32> & Visited, function_ref Callback)

    Helper to iterate over indirect users. By returning false, the callback can ask to stop traversing further.

    Defined at line 722 of file llvm/lib/IR/Verifier.cpp

  • const char * lfast (struct lmat * , const char * , const char * , sopno , sopno )

    - fast - step through the string at top speed

    Defined at line 724 of file llvm/lib/Support/regengine.inc

  • const char * sfast (struct smat * , const char * , const char * , sopno , sopno )

    - fast - step through the string at top speed

    Defined at line 724 of file llvm/lib/Support/regengine.inc

  • void printMBB (raw_ostream & OS, MFPrintState & State, const MachineBasicBlock & MBB)

    Defined at line 725 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • lto_input_t lto_input_create (const void * buffer, size_t buffer_size, const char * path)

    Creates an LTO input file from a buffer. The path

    argument is used for diagnotics as this function

    otherwise does not know which file the given buffer

    is associated with.

    Defined at line 728 of file llvm/tools/lto/lto.cpp

  • void lto_input_dispose (lto_input_t input)

    Frees all memory internally allocated by the LTO input file.

    Upon return the lto_module_t is no longer valid.

    Defined at line 732 of file llvm/tools/lto/lto.cpp

  • LLVMOrcThreadSafeContextRef LLVMOrcCreateNewThreadSafeContext ()

    Create a ThreadSafeContextRef containing a new LLVMContext.

    Ownership of the underlying ThreadSafeContext data is shared: Clients

    can and should dispose of their ThreadSafeContextRef as soon as they no

    longer need to refer to it directly. Other references (e.g. from

    ThreadSafeModules) will keep the underlying data alive as long as it is

    needed.

    Defined at line 730 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMBFloatTypeInContext (LLVMContextRef C)

    Obtain a 16-bit brain floating point type from a context.

    Defined at line 718 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMFloatTypeInContext (LLVMContextRef C)

    Obtain a 32-bit floating point type from a context.

    Defined at line 721 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMDoubleTypeInContext (LLVMContextRef C)

    Obtain a 64-bit floating point type from a context.

    Defined at line 724 of file llvm/lib/IR/Core.cpp

  • template <typename ConcreteType>
    void mapLeafRecordImpl (IO & IO, const char * Class, TypeLeafKind Kind, LeafRecord & Obj)

    Defined at line 724 of file llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp

  • void initializeExternalAAWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 726 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • lto::InputFile * unwrap (lto_input_t P)

    Defined at line 726 of file llvm/tools/lto/lto.cpp

  • lto_input_t wrap (const lto::InputFile * P)

    Defined at line 726 of file llvm/tools/lto/lto.cpp

  • void AddNodeIDOperands (FoldingSetNodeID & ID, ArrayRef<SDUse> Ops)

    AddNodeIDOperands - Various routines for adding operands to the NodeID data.

    Defined at line 726 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • uint64_t writeContent (ContiguousBlobAccumulator & CBA, const std::optional<yaml::BinaryRef> & Content, const std::optional<llvm::yaml::Hex64> & Size)

    Defined at line 726 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • int unwindBacktrace (void ** StackTrace, int MaxEntries)

    Defined at line 726 of file llvm/lib/Support/Unix/Signals.inc

  • bool isFSqrtDivToFMulLegal (Instruction * X, SmallPtrSetImpl<Instruction *> & R1, SmallPtrSetImpl<Instruction *> & R2)

    Check legality for transforming

    x = 1.0/sqrt(a)

    r1 = x * x;

    r2 = a/sqrt(a);

    TO

    r1 = 1/a

    r2 = sqrt(a)

    x = r1 * r2

    This transform works only when 'a' is known positive.

    Defined at line 726 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • LLVMTypeRef LLVMX86FP80TypeInContext (LLVMContextRef C)

    Obtain a 80-bit floating point type (X87) from a context.

    Defined at line 727 of file llvm/lib/IR/Core.cpp

  • std::optional<int> parseDevirtPassName (StringRef Name)

    Defined at line 727 of file llvm/lib/Passes/PassBuilder.cpp

  • bool simplifyLoopCFG (Loop & L, DominatorTree & DT, LoopInfo & LI, ScalarEvolution & SE, MemorySSAUpdater * MSSAU, bool & IsLoopDeleted)

    Defined at line 727 of file llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp

  • Error getIncompatibleError (StringRef Ext1, StringRef Ext2)

    Defined at line 728 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • Error verifyNoteSection (StringRef Name, endianness Endianness, ArrayRef Data)

    Defined at line 728 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • void initializeDummyCGSCCPassPassOnce (PassRegistry & Registry)

    Defined at line 729 of file llvm/lib/Analysis/CallGraphSCCPass.cpp

  • bool isImportDescriptor (StringRef Name)

    Defined at line 729 of file llvm/lib/Object/ArchiveWriter.cpp

  • bool bothUsedInPHI (const MachineBasicBlock & A, const SmallPtrSet<MachineBasicBlock *, 8> & SuccsB)

    Defined at line 729 of file llvm/lib/CodeGen/TailDuplicator.cpp

  • optional combinePossibleConstantValues (optional LHS, optional RHS, Mode EvalMode)

    Defined at line 729 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • unsigned int getEncodedOrdering (AtomicOrdering Ordering)

    Defined at line 729 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool violatesLegacyMultiExitLoopCheck (Loop * L)

    This "heuristic" exactly matches implicit behavior which used to exist

    inside getLoopEstimatedTripCount. It was added here to keep an

    improvement inside that API from causing peeling to become more aggressive.

    This should probably be removed.

    Defined at line 729 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • void generateGetDirectiveAssociation (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Defined at line 729 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • LLVMTypeRef LLVMFP128TypeInContext (LLVMContextRef C)

    Obtain a 128-bit floating point type (112-bit mantissa) from a

    context.

    Defined at line 730 of file llvm/lib/IR/Core.cpp

  • Function * getOrInsertIntrinsicDeclarationImpl (Module * M, Intrinsic::ID id, ArrayRef Tys, FunctionType * FT)

    Defined at line 730 of file llvm/lib/IR/Intrinsics.cpp

  • bool constantIsDead (const Constant * C, bool RemoveDeadUsers)

    Return true if the specified constantexpr is dead. This involves

    recursively traversing users of the constantexpr.

    If RemoveDeadUsers is true, also remove dead users at the same time.

    Defined at line 730 of file llvm/lib/IR/Constants.cpp

  • Instruction * unpackLoadToAggregate (InstCombinerImpl & IC, LoadInst & LI)

    Defined at line 730 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • void printSymbolList (SymbolicFile & Obj, int & SymbolList, bool printName, StringRef ArchiveName, StringRef ArchitectureName)

    Defined at line 730 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void ProcessSDDbgValues (SDNode * N, SelectionDAG * DAG, InstrEmitter & Emitter, SmallVectorImpl<std::pair<unsigned int, MachineInstr *>> & Orders, int & VRBaseMap, unsigned int Order)

    ProcessSDDbgValues - Process SDDbgValues associated with this node.

    Defined at line 731 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp

  • void collectEHScopeMembers (int & EHScopeMembership, int EHScope, const MachineBasicBlock * MBB)

    Defined at line 732 of file llvm/lib/CodeGen/Analysis.cpp

  • LLVMTypeRef LLVMPPCFP128TypeInContext (LLVMContextRef C)

    Obtain a 128-bit floating point type (two 64-bits) from a context.

    Defined at line 733 of file llvm/lib/IR/Core.cpp

  • Error getExtensionRequiresError (StringRef Ext, StringRef ReqExt)

    Defined at line 733 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • unsigned int getLeaOP (LLT Ty, const X86Subtarget & STI)

    Defined at line 733 of file llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp

  • template <typename IntTy, std::enable_if_t<std::is_unsigned_v<IntTy>, int> = 0>
    IntTy readULEB128As (DataExtractor & Data, DataExtractor::Cursor & Cur, Error & ULEBSizeErr)

    Helper to extract and decode the next ULEB128 value as unsigned int.

    Returns zero and sets ULEBSizeErr if the ULEB128 value exceeds the unsigned

    int limit.

    Also returns zero if ULEBSizeErr is already in an error state.

    ULEBSizeErr is an out variable if an error occurs.

    Defined at line 733 of file llvm/lib/Object/ELF.cpp

  • int llvm_lipo_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 734 of file llvm/tools/llvm-lipo/llvm-lipo.cpp

  • Option * getOptionPred (StringRef Name, size_t & Length, bool (*)(const Option *) Pred, const StringMap<Option *> & OptionsMap)

    getOptionPred - Check to see if there are any options that satisfy the

    specified predicate with names that are the prefixes in Name. This is

    checked by progressively stripping characters off of the name, checking to

    see if there options that satisfy the predicate. If we find one, return it,

    otherwise return null.

    Defined at line 735 of file llvm/lib/Support/CommandLine.cpp

  • unsigned int lto_input_get_num_dependent_libraries (lto_input_t input)

    Returns the number of dependent library specifiers

    for the given LTO input file.

    Defined at line 736 of file llvm/tools/lto/lto.cpp

  • LLVMOrcThreadSafeContextRef LLVMOrcCreateNewThreadSafeContextFromLLVMContext (LLVMContextRef Ctx)

    Create a ThreadSafeContextRef from a given LLVMContext, which must not be

    associated with any existing ThreadSafeContext.

    The underlying ThreadSafeContext will take ownership of the LLVMContext

    object, so clients should not free the LLVMContext passed to this

    function.

    Ownership of the underlying ThreadSafeContext data is shared: Clients

    can and should dispose of their ThreadSafeContextRef as soon as they no

    longer need to refer to it directly. Other references (e.g. from

    ThreadSafeModules) will keep the underlying data alive as long as it is

    needed.

    Defined at line 734 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void AddNodeIDNode (FoldingSetNodeID & ID, unsigned int OpC, SDVTList VTList, ArrayRef<SDValue> OpList)

    Defined at line 734 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • MachineOperand GetMOForConstDbgOp (const SDDbgOperand & Op)

    Defined at line 734 of file llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp

  • template <typename T0, typename T1, typename T2, typename T3>
    InvokeInst * CreateGCStatepointInvokeCommon (IRBuilderBase * Builder, uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualInvokee, BasicBlock * NormalDest, BasicBlock * UnwindDest, uint32_t Flags, ArrayRef<T0> InvokeArgs, std::optional<ArrayRef<T1>> TransitionArgs, std::optional<ArrayRef<T2>> DeoptArgs, ArrayRef<T3> GCArgs, const Twine & Name)

    Defined at line 734 of file llvm/lib/IR/IRBuilder.cpp

  • bool tryToShortenBegin (Instruction * DeadI, int & IntervalMap, int64_t & DeadStart, uint64_t & DeadSize)

    Defined at line 734 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • void dumpEdges (CFGMST<Edge, BBInfo> & MST, GCOVFunction & GF)

    Defined at line 735 of file llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp

  • void emitNullTerminatedSymbolName (MCStreamer & OS, StringRef S, unsigned int MaxFixedRecordLength)

    Defined at line 735 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • VPScalarIVStepsRecipe * createScalarIVSteps (VPlan & Plan, InductionKind Kind, BinaryOps InductionOpcode, FPMathOperator * FPBinOp, Instruction * TruncI, VPValue * StartV, VPValue * Step, DebugLoc DL, VPBuilder & Builder)

    Defined at line 735 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • LLVMTypeRef LLVMX86AMXTypeInContext (LLVMContextRef C)

    Create a X86 AMX type in a context.

    Defined at line 736 of file llvm/lib/IR/Core.cpp

  • void debugVectorizationMessage (StringRef Prefix, StringRef DebugMsg, Instruction * I)

    Defined at line 736 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • Value * foldSelectICmpLshrAshr (const ICmpInst * IC, Value * TrueVal, Value * FalseVal, InstCombiner::BuilderTy & Builder)

    We want to turn:

    (select (icmp sgt x, C), lshr (X, Y), ashr (X, Y)); iff C s>= -1

    (select (icmp slt x, C), ashr (X, Y), lshr (X, Y)); iff C s>= 0

    into:

    ashr (X, Y)

    Defined at line 736 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • Expected getSymbols (SymbolicFile * Obj, uint16_t Index, raw_ostream & SymNames, SymMap * SymMap)

    Defined at line 736 of file llvm/lib/Object/ArchiveWriter.cpp

  • void initializeAAResultsWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 738 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • Error checkDylibCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char * CmdName)

    Defined at line 738 of file llvm/lib/Object/MachOObjectFile.cpp

  • void updatePhysDepsDownwards (const MachineInstr * UseMI, SmallVectorImpl<DataDep> & Deps, int & RegUnits, const TargetRegisterInfo * TRI)

    Identify physreg dependencies for UseMI, and update the live regunit

    tracking set when scanning instructions downwards.

    Defined at line 738 of file llvm/lib/CodeGen/MachineTraceMetrics.cpp

  • void LLVMOrcDisposeThreadSafeContext (LLVMOrcThreadSafeContextRef TSCtx)

    Dispose of a ThreadSafeContext.

    Defined at line 739 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void printSectionSizes (json::OStream & J, const SectionSizes & Sizes)

    Defined at line 739 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • LLVMTypeRef LLVMHalfType ()

    Obtain a floating point type from the global context.

    These map to the functions in this group of the same name.

    Defined at line 740 of file llvm/lib/IR/Core.cpp

  • uint64_t SpecialAddr (MCDwarfLineTableParams Params, uint64_t op)

    Given a special op, return the address skip amount (in units of

    DWARF2_LINE_MIN_INSN_LENGTH).

    Defined at line 740 of file llvm/lib/MC/MCDwarf.cpp

  • const char * lto_input_get_dependent_library (lto_input_t input, size_t index, size_t * size)

    Returns the ith dependent library specifier

    for the given LTO input file. The returned

    string is not null-terminated.

    Defined at line 740 of file llvm/tools/lto/lto.cpp

  • void detectX86FamilyModel (unsigned int EAX, unsigned int * Family, unsigned int * Model)

    Defined at line 740 of file llvm/lib/TargetParser/Host.cpp

  • optional aggregatePossibleConstantValuesImpl (const Value * V, Mode EvalMode, unsigned int BitWidth, unsigned int recursionDepth)

    Defined at line 741 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • void writeStringRecord (BitstreamWriter & Stream, unsigned int Code, StringRef Str, unsigned int AbbrevToUse)

    Defined at line 742 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • StringRef getDefaultLinkSec (unsigned int SecType)

    Defined at line 742 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • int llvm_rc_main (int Argc, char ** Argv, const llvm::ToolContext & )

    Defined at line 742 of file llvm/tools/llvm-rc/llvm-rc.cpp

  • Instruction * simplifyNeonTbl (IntrinsicInst & II, InstCombiner & IC, bool IsExtension)

    Convert `tbl`/`tbx` intrinsics to shufflevector if the mask is constant, and

    at most two source operands are actually referenced.

    Defined at line 742 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • void AddNodeIDCustom (FoldingSetNodeID & ID, const SDNode * N)

    If this is an SDNode with special info, add this info to the NodeID data.

    Defined at line 742 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void initializeTypeBasedAAWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 743 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp

  • LLVMTypeRef LLVMBFloatType ()

    Defined at line 743 of file llvm/lib/IR/Core.cpp

  • DIType * createTypeWithFlags (const DIType * Ty, DIFlags FlagsToSet)

    Defined at line 743 of file llvm/lib/IR/DIBuilder.cpp

  • MDNode * getUnrollMetadataForLoop (const Loop * L, StringRef Name)

    Returns the loop hint metadata node with the given name (for example,

    "llvm.loop.unroll.count"). If no such metadata node exists, then nullptr is

    returned.

    Defined at line 743 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • void raiseUserConstantDataAllocasToEntryBlock (IRBuilderBase & Builder, Function * Function)

    Defined at line 743 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • uint64_t XXH_xorshift64 (uint64_t v64, int shift)

    Seems to produce slightly better code on GCC for some reason.

    Defined at line 744 of file llvm/lib/Support/xxhash.cpp

  • bool regIsPICBase (Register BaseReg, const MachineRegisterInfo & MRI)

    Return true if register is PIC base; i.e.g defined by X86::MOVPC32r.

    Defined at line 744 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • basic_string getDecoderString (const InstructionEncoding & Encoding)

    Defined at line 744 of file llvm/utils/TableGen/DecoderEmitter.cpp

  • void addChildMember (std::vector<NewArchiveMember> & Members, const object::Archive::Child & M, bool FlattenArchive)

    Defined at line 744 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void computeFreeStackSlots (MachineFrameInfo & MFI, bool StackGrowsDown, int64_t FixedCSEnd, BitVector & StackBytesFree)

    Compute which bytes of fixed and callee-save stack area are unused and keep

    track of them in StackBytesFree.

    Defined at line 744 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • void printUnexpectedRawAuxEnt (ScopedPrinter & W, uintptr_t AuxAddress)

    Defined at line 745 of file llvm/tools/llvm-readobj/XCOFFDumper.cpp

  • Value * tryFactorization (BinaryOperator & I, const SimplifyQuery & SQ, InstCombiner::BuilderTy & Builder, BinaryOps InnerOpcode, Value * A, Value * B, Value * C, Value * D)

    This tries to simplify binary operations by factorizing out common terms

    (e. g. "(A*B)+(A*C)" -> "A*(B+C)").

    Defined at line 745 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • const char *const * lto_runtime_lib_symbols_list (size_t * size)

    Returns the list of libcall symbols that can be generated by LTO

    that might not be visible from the symbol table of bitcode files.

    Defined at line 746 of file llvm/tools/lto/lto.cpp

  • LLVMErrorRef LLVMOrcThreadSafeModuleWithModuleDo (LLVMOrcThreadSafeModuleRef TSM, LLVMOrcGenericIRModuleOperationFunction F, void * Ctx)

    Apply the given function to the module contained in this ThreadSafeModule.

    Defined at line 743 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMFloatType ()

    Defined at line 746 of file llvm/lib/IR/Core.cpp

  • bool mayInstNodeLoadOrStore (const TreePatternNode & N, const CodeGenDAGPatterns & CGP)

    Defined at line 746 of file llvm/utils/TableGen/DAGISelMatcherGen.cpp

  • void updateVarsWithAbstractOriginLocCovInfo (DWARFDie FnDieWithAbstractOrigin, AbstractOriginVarsTy & AbstractOriginVars)

    Stop tracking variables that contain abstract_origin with a location.

    This is used for out-of-order DW_AT_inline subprograms only.

    Defined at line 746 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • Value * simplifySubInst (Value * Op0, Value * Op1, bool IsNSW, bool IsNUW, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for a Sub, see if we can fold the result.

    If not, this returns null.

    Defined at line 746 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool DoFlattenLoopPair (FlattenInfo & FI, DominatorTree * DT, LoopInfo * LI, ScalarEvolution * SE, AssumptionCache * AC, const TargetTransformInfo * TTI, LPMUpdater * U, MemorySSAUpdater * MSSAU)

    Defined at line 747 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • bool outputDenormalIsIEEEOrPosZero (const MachineFunction & MF, LLT Ty)

    Defined at line 748 of file llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp

  • LLVMOrcThreadSafeModuleRef LLVMOrcCreateNewThreadSafeModule (LLVMModuleRef M, LLVMOrcThreadSafeContextRef TSCtx)

    Create a ThreadSafeModule wrapper around the given LLVM module. This takes

    ownership of the M argument which should not be disposed of or referenced

    after this function returns.

    Ownership of the ThreadSafeModule is unique: If it is transferred to the JIT

    (e.g. by LLVMOrcLLJITAddLLVMIRModule) then the client is no longer

    responsible for it. If it is not transferred to the JIT then the client

    should call LLVMOrcDisposeThreadSafeModule to dispose of it.

    Defined at line 751 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMDoubleType ()

    Defined at line 749 of file llvm/lib/IR/Core.cpp

  • XXH128_hash_t XXH3_len_1to3_128b (const uint8_t * input, size_t len, const uint8_t * secret, uint64_t seed)

    Defined at line 749 of file llvm/lib/Support/xxhash.cpp

  • bool hasUnrollFullPragma (const Loop * L)

    Returns true if the loop has an unroll(full) pragma.

    Defined at line 750 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • void initializeObjCARCContractLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 750 of file llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp

  • EnvironmentType parseEnvironment (StringRef EnvironmentName)

    Defined at line 751 of file llvm/lib/TargetParser/Triple.cpp

  • template <typename ELFT>
    Expected decodeBBAddrMapImpl (const ELFFile<ELFT> & EF, const typename ELFFile<ELFT>::Elf_Shdr & Sec, const typename ELFFile<ELFT>::Elf_Shdr * RelaSec, std::vector<PGOAnalysisMap> * PGOAnalyses)

    Defined at line 751 of file llvm/lib/Object/ELF.cpp

  • LLVMTypeRef LLVMX86FP80Type ()

    Defined at line 752 of file llvm/lib/IR/Core.cpp

  • bool cmpExcludesZero (Predicate Pred, const Value * RHS)

    TODO: cmpExcludesZero misses many cases where `RHS` is non-constant but

    we still have enough information about `RHS` to conclude non-zero. For

    example Pred=EQ, RHS=isKnownNonZero. cmpExcludesZero is called in loops

    so the extra compile time may not be worth it, but possibly a second API

    should be created for use outside of loops.

    Defined at line 752 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * checkForNegativeOperand (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Checks if any operand is negative and we can convert add to sub.

    This function checks for following negative patterns

    ADD(XOR(OR(Z, NOT(C)), C)), 1) == NEG(AND(Z, C))

    ADD(XOR(AND(Z, C), C), 1) == NEG(OR(Z, ~C))

    XOR(AND(Z, C), (C + 1)) == NEG(OR(Z, ~C)) if C is even

    Defined at line 752 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • void findFuncPointers (const Constant * I, uint64_t StartingOffset, const Module & M, ModuleSummaryIndex & Index, VTableFuncList & VTableFuncs, const GlobalVariable & OrigGV)

    Find function pointers referenced within the given vtable initializer

    (or subset of an initializer)

    The starting offset of

    within

    the vtable initializer is

    Any discovered function

    pointers are added to

    along with their cumulative offset

    within the initializer.

    Defined at line 752 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • int getPtrToIdxMap (ArrayRef<RuntimeCheckingPtrGroup> CheckingGroups)

    Assign each RuntimeCheckingPtrGroup pointer an index for stable UTC output.

    Defined at line 753 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • struct jit_code_entry * findNextDebugDescriptorEntry (struct jit_code_entry * Latest)

    Defined at line 753 of file llvm/tools/lli/lli.cpp

  • void allUsesOfLoadAndStores (GlobalVariable * GV, SmallVector<Value *, 4> & Uses)

    Get all the loads/store uses for global variable

    Defined at line 753 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void writeIRFileDisplayName (raw_ostream & ResultStream, Any IR)

    Defined at line 753 of file llvm/lib/Passes/StandardInstrumentations.cpp

  • bool isOperandUnresolved (Metadata * Op)

    Defined at line 754 of file llvm/lib/IR/Metadata.cpp

  • unsigned int numNodesThatMayLoadOrStore (const TreePatternNode & N, const CodeGenDAGPatterns & CGP)

    Defined at line 754 of file llvm/utils/TableGen/DAGISelMatcherGen.cpp

  • bool checkDependencies (Loop & Root, const BasicBlockSet & SubLoopBlocks, const DenseMap<Loop *, BasicBlockSet> & ForeBlocksMap, const DenseMap<Loop *, BasicBlockSet> & AftBlocksMap, DependenceInfo & DI, LoopInfo & LI)

    Defined at line 754 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • LLVMTypeRef LLVMFP128Type ()

    Defined at line 755 of file llvm/lib/IR/Core.cpp

  • OptimizationRemarkAnalysis createLVAnalysis (const char * PassName, StringRef RemarkName, Loop * TheLoop, Instruction * I, DebugLoc DL)

    Create an analysis remark that explains why vectorization failed

    is the name of the pass (e.g. can be AlwaysPrint).

    is the identifier for the remark. If

    is passed it is an

    instruction that prevents vectorization. Otherwise

    is used for

    the location of the remark. If

    is passed, use it as debug location for

    the remark.

    Returns

    the remark object that can be streamed to.

    Defined at line 755 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • bool canRenameComdat (Function & F, int & ComdatMembers)

    Check if we can safely rename this Comdat function.

    Defined at line 755 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • StringRef getIntelProcessorTypeAndSubtype (unsigned int Family, unsigned int Model, const unsigned int * Features, unsigned int * Type, unsigned int * Subtype)

    Defined at line 755 of file llvm/lib/TargetParser/Host.cpp

  • bool hasUnrollEnablePragma (const Loop * L)

    Returns true if the loop has an unroll(enable) pragma. This metadata is used

    for both "#pragma unroll" and "#pragma clang loop unroll(enable)" directives.

    Defined at line 756 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • template <typename ConcreteType>
    void mapMemberRecordImpl (IO & IO, const char * Class, TypeLeafKind Kind, MemberRecord & Obj)

    Defined at line 756 of file llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp

  • Predicate getIntPredicateFromMD (const Value * Op)

    Defined at line 757 of file llvm/lib/IR/IntrinsicInst.cpp

  • uint64_t getAttrKindEncoding (AttrKind Kind)

    Defined at line 757 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • void LLVMOrcDisposeThreadSafeModule (LLVMOrcThreadSafeModuleRef TSM)

    Dispose of a ThreadSafeModule. This should only be called if ownership has

    not been passed to LLJIT (e.g. because some error prevented the client from

    adding this to the JIT).

    Defined at line 758 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMPPCFP128Type ()

    Defined at line 758 of file llvm/lib/IR/Core.cpp

  • Domain getDomain (const ConstantRange & CR)

    Defined at line 758 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void createIrreducibleLoop (BlockFrequencyInfoImplBase & BFI, const IrreducibleGraph & G, LoopData * OuterLoop, _List_iterator Insert, const std::vector<const IrreducibleGraph::IrrNode *> & SCC)

    Defined at line 758 of file llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp

  • void createMemMoveLoopKnownSize (Instruction * InsertBefore, Value * SrcAddr, Value * DstAddr, ConstantInt * CopyLen, Align SrcAlign, Align DstAlign, bool SrcIsVolatile, bool DstIsVolatile, const TargetTransformInfo & TTI)

    Similar to createMemMoveLoopUnknownSize, only the trip counts are computed at

    compile time, obsolete loops and branches are omitted, and the residual code

    is straight-line code instead of a loop.

    Defined at line 758 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • void dumpUUID (raw_ostream & OS, const ObjectFile & Obj)

    Dump the UUID load command.

    Defined at line 759 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • LLVMTypeRef LLVMX86AMXType ()

    Defined at line 761 of file llvm/lib/IR/Core.cpp

  • bool hasRuntimeUnrollDisablePragma (const Loop * L)

    Returns true if the loop has an runtime unroll(disable) pragma.

    Defined at line 761 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • bool verifyObjectFile (ObjectFile & Obj, DWARFContext & DICtx, const Twine & Filename, raw_ostream & OS)

    Defined at line 761 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void findConstants (IRSimilarityCandidate & C, DenseSet<unsigned int> & NotSame, std::vector<unsigned int> & Inputs)

    Find the constants that will need to be lifted into arguments

    as they are not the same in each instance of the region.

    Parameters

    C [in] - The IRSimilarityCandidate containing the region we are analyzing.
    NotSame [in] - The set of global value numbers that do not have a single Constant across all OutlinableRegions similar to
    Inputs [out] - The list containing the global value numbers of the arguments needed for the region of code.

    Defined at line 761 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • LLVMErrorRef TryToGenerateWithSuspendedLookup (LLVMOrcDefinitionGeneratorRef GeneratorObj, void * RawCtx, LLVMOrcLookupStateRef * LookupState,  Kind, LLVMOrcJITDylibRef JD,  JDLookupFlags, LLVMOrcCLookupSet LookupSet, size_t LookupSetSize)

    Defined at line 761 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • void PrintRLength (const uint64_t cputype, const unsigned int r_type, const unsigned int r_length, const bool previous_arm_half)

    Defined at line 761 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void initializePeepholeOptimizerLegacyPassOnce (PassRegistry & Registry)

    Defined at line 762 of file llvm/lib/CodeGen/PeepholeOptimizer.cpp

  • bool isSchedBoundary (int MI, MachineBasicBlock * MBB, MachineFunction * MF, const TargetInstrInfo * TII)

    Return true of the given instruction should not be included in a scheduling

    region.

    MachineScheduler does not currently support scheduling across calls. To

    handle calls, the DAG builder needs to be modified to create register

    anti/output dependencies on the registers clobbered by the call's regmask

    operand. In PreRA scheduling, the stack pointer adjustment already prevents

    scheduling across calls. In PostRA scheduling, we need the isCall to enforce

    the boundary, but there would be no benefit to postRA scheduling across

    calls this late anyway.

    Defined at line 762 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • LLVMErrorRef LLVMOrcJITTargetMachineBuilderDetectHost (LLVMOrcJITTargetMachineBuilderRef * Result)

    Create a JITTargetMachineBuilder by detecting the host.

    On success the client owns the resulting JITTargetMachineBuilder. It must be

    passed to a consuming operation (e.g.

    LLVMOrcLLJITBuilderSetJITTargetMachineBuilder) or disposed of by calling

    LLVMOrcDisposeJITTargetMachineBuilder.

    Defined at line 762 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • ToolOutputFile & claimToolOutput ()

    Defined at line 762 of file llvm/tools/lli/lli.cpp

  • basic_string getPredicateString (const InstructionEncoding & Encoding, StringRef TargetName)

    Defined at line 763 of file llvm/utils/TableGen/DecoderEmitter.cpp

  • Constant * tryToMergePartialOverlappingStores (StoreInst * KillingI, StoreInst * DeadI, int64_t KillingOffset, int64_t DeadOffset, const DataLayout & DL, BatchAAResults & AA, DominatorTree * DT)

    Defined at line 763 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • Option * HandlePrefixedOrGroupedOption (StringRef & Arg, StringRef & Value, bool & ErrorParsing, const StringMap<Option *> & OptionsMap)

    HandlePrefixedOrGroupedOption - The specified argument string (which started

    with at least one '-') does not fully match an available option. Check to

    see if this is a prefix or grouped option. If so, split arg into output an

    Arg/Value pair and return the Option to parse it with.

    Defined at line 763 of file llvm/lib/Support/CommandLine.cpp

  • int p_count (struct parse * )

    Defined at line 764 of file llvm/lib/Support/regcomp.c

  • void TestLineTableDecodeError (endianness ByteOrder, StringRef Bytes, const uint64_t BaseAddr, basic_string ExpectedErrorMsg)

    Defined at line 765 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • template <typename DirIter>
    void checkContents (DirIter I, ArrayRef ExpectedOut)

    Defined at line 766 of file llvm/unittests/Support/VirtualFileSystemTest.cpp

  • LLVMTypeRef LLVMFunctionType (LLVMTypeRef ReturnType, LLVMTypeRef * ParamTypes, unsigned int ParamCount, LLVMBool IsVarArg)

    Obtain a function type consisting of a specified signature.

    The function is defined as a tuple of a return Type, a list of

    parameter types, and whether the function is variadic.

    Defined at line 767 of file llvm/lib/IR/Core.cpp

  • unsigned int unrollCountPragmaValue (const Loop * L)

    If loop has an unroll_count pragma return the (necessarily

    positive) value from the pragma. Otherwise return 0.

    Defined at line 767 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • bool canShiftBinOpWithConstantRHS (BinaryOperator & Shift, BinaryOperator * BO)

    If this is a bitwise operator or add with a constant RHS we might be able

    to pull it through a shift.

    Defined at line 767 of file llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  • void GroupByComplexity (SmallVectorImpl<const SCEV *> & Ops, LoopInfo * LI, DominatorTree & DT)

    Given a list of SCEV objects, order them by their complexity, and group

    objects of the same complexity together by value. When this routine is

    finished, we know that any duplicates in the vector are consecutive and that

    complexity is monotonically increasing.

    Note that we go take special precautions to ensure that we get deterministic

    results from this routine. In other words, we don't want the results of

    this to depend on where the addresses of various SCEV objects happened to

    land in memory.

    Defined at line 767 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • Value * NegateValue (Value * V, Instruction * BI, ReassociatePass::OrderedSet & ToRedo)

    Insert instructions before the instruction pointed to by BI,

    that computes the negative version of the value specified. The negative

    version of the value is returned, and BI is left pointing at the instruction

    that should be processed next by the reassociation pass.

    Also add intermediate instructions to the redo list that are modified while

    pushing the negates through adds. These will be revisited to see if

    additional opportunities have been exposed.

    Defined at line 767 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • bool narrowSDivOrSRem (BinaryOperator * Instr, const ConstantRange & LCR, const ConstantRange & RCR)

    Try to shrink a sdiv/srem's width down to the smallest power of two that's

    sufficient to contain its operands.

    Defined at line 768 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void collectZeroLocCovForVarsWithAbstractOrigin (DWARFUnit * DwUnit, GlobalStats & GlobalStats, LocationStats & LocStats, AbstractOriginVarsTyMap & LocalAbstractOriginFnInfo, FunctionsWithAbstractOriginTy & FnsWithAbstractOriginToBeProcessed)

    Collect zero location coverage for inlined variables which refer to

    a DW_AT_inline copy of subprogram that is out of order in the DWARF.

    Also cover the variables of a concrete function (represented with

    the DW_TAG_subprogram) with an abstract_origin attribute.

    Defined at line 769 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • Error checkDylibIdCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char ** LoadCmd)

    Defined at line 770 of file llvm/lib/Object/MachOObjectFile.cpp

  • LoadCommandType getLCFromMCVM (MCVersionMinType Type)

    Defined at line 771 of file llvm/lib/MC/MachObjectWriter.cpp

  • PHINode * getLoopPhiForCounter (Value * IncV, Loop * L)

    Given an Value which is hoped to be part of an add recurance in the given

    loop, return the associated Phi node if so. Otherwise, return null. Note

    that this is less general than SCEVs AddRec checking.

    Defined at line 771 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • bool upgradeArmOrAarch64IntrinsicFunction (bool IsArm, Function * F, StringRef Name, Function *& NewFn)

    Upgrade ARM (IsArm) or Aarch64 (!IsArm) intrinsic fns. Return true iff so.

    IsArm: 'arm.*', !IsArm: 'aarch64.*'.

    Defined at line 771 of file llvm/lib/IR/AutoUpgrade.cpp

  • void getSchedRegions (MachineBasicBlock * MBB, MBBRegionsVector & Regions, bool RegionsTopDown)

    Defined at line 772 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • bool OptimizeAwayTrappingUsesOfValue (Value * V, Constant * NewV)

    Defined at line 772 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • LLVMBool LLVMIsFunctionVarArg (LLVMTypeRef FunctionTy)

    Returns whether a function type is variadic.

    Defined at line 774 of file llvm/lib/IR/Core.cpp

  • KnownBits avgComputeU (KnownBits LHS, KnownBits RHS, bool IsCeil)

    Defined at line 774 of file llvm/lib/Support/KnownBits.cpp

  • optional aggregatePossibleConstantValues (const Value * V, Mode EvalMode, unsigned int BitWidth)

    Defined at line 774 of file llvm/lib/Analysis/MemoryBuiltins.cpp

  • bool tryOptimizeLEAtoMOV (int II)

    tryOptimizeLEAtoMOV - helper function that tries to replace a LEA instruction

    of the form 'lea (%esp), %ebx' --> 'mov %esp, %ebx'.

    TODO: In this case we should be really trying first to entirely eliminate

    this instruction which is a plain copy.

    Defined at line 774 of file llvm/lib/Target/X86/X86RegisterInfo.cpp

  • void initializeLoopSimplifyPassOnce (PassRegistry & Registry)

    Defined at line 775 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp

  • SmallVector collectUsersRecursively (VPValue * V)

    Defined at line 775 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • unique_ptr CleanupAndPrepareModules (BugDriver & BD, unique_ptr Test, Module * Safe)

    Get the specified modules ready for code generator testing.

    Defined at line 776 of file llvm/tools/bugpoint/Miscompilation.cpp

  • void disassembleObject (llvm::object::ObjectFile * , bool InlineRelocs)

    Defined at line of file

  • int enablezOSAutoConversion (int FD)

    Defined at line of file

  • void emitX86Nops (MCStreamer & OS, unsigned int NumBytes, const X86Subtarget * Subtarget)

    Emit a minimal sequence of nops spanning NumBytes bytes.

    Defined at line 776 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • LLVMOrcJITTargetMachineBuilderRef LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine (LLVMTargetMachineRef TM)

    Create a JITTargetMachineBuilder from the given TargetMachine template.

    This operation takes ownership of the given TargetMachine and destroys it

    before returing. The resulting JITTargetMachineBuilder is owned by the client

    and must be passed to a consuming operation (e.g.

    LLVMOrcLLJITBuilderSetJITTargetMachineBuilder) or disposed of by calling

    LLVMOrcDisposeJITTargetMachineBuilder.

    Defined at line 776 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • XXH128_hash_t XXH3_len_4to8_128b (const uint8_t * input, size_t len, const uint8_t * secret, uint64_t seed)

    Defined at line 776 of file llvm/lib/Support/xxhash.cpp

  • void updateNewSCCFunctionAnalyses (LazyCallGraph::SCC & C, LazyCallGraph & G, CGSCCAnalysisManager & AM, FunctionAnalysisManager & FAM)

    When a new SCC is created for the graph we first update the

    FunctionAnalysisManager in the Proxy's result.

    As there might be function analysis results cached for the functions now in

    that SCC, two forms of updates are required.

    First, a proxy from the SCC to the FunctionAnalysisManager needs to be

    created so that any subsequent invalidation events to the SCC are

    propagated to the function analysis results cached for functions within it.

    Second, if any of the functions within the SCC have analysis results with

    outer analysis dependencies, then those dependencies would point to the

    *wrong* SCC's analysis result. We forcibly invalidate the necessary

    function analyses so that they don't retain stale handles.

    Defined at line 776 of file llvm/lib/Analysis/CGSCCPassManager.cpp

  • bool areTypesABICompatible (ArrayRef Types, const Function & F, const TargetTransformInfo & TTI)

    Check if callers and callee agree on how promoted arguments would be

    passed.

    Defined at line 777 of file llvm/lib/Transforms/IPO/ArgumentPromotion.cpp

  • void ProcessSourceNode (SDNode * N, SelectionDAG * DAG, InstrEmitter & Emitter, int & VRBaseMap, SmallVectorImpl<std::pair<unsigned int, MachineInstr *>> & Orders, int & Seen, MachineInstr * NewInsn)

    ProcessSourceNode - Process nodes with source order numbers. These are added

    to a vector which EmitSchedule uses to determine how to insert dbg_value

    instructions in the right order.

    Defined at line 777 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp

  • Expected computeMemberData (raw_ostream & StringTable, raw_ostream & SymNames, Kind Kind, bool Thin, bool Deterministic, SymtabWritingMode NeedSymbols, SymMap * SymMap, LLVMContext & Context, ArrayRef NewMembers, optional IsEC, function_ref Warn)

    Defined at line 777 of file llvm/lib/Object/ArchiveWriter.cpp

  • int disablezOSAutoConversion (int FD)

    Defined at line of file

  • void exportCoverageDataToJson (const coverage::CoverageMapping & CoverageMapping, const CoverageViewOptions & Options, raw_ostream & OS)

    Defined at line of file

  • LLVMTypeRef LLVMGetReturnType (LLVMTypeRef FunctionTy)

    Obtain the Type this function Type returns.

    Defined at line 778 of file llvm/lib/IR/Core.cpp

  • void getArrayElements (const Constant * C, SmallVectorImpl<Constant *> & Dest)

    Defined at line 778 of file llvm/lib/Linker/IRMover.cpp

  • bool interpretNextInstr (const MachineInstr * CurMI, int & ForwardedRegWorklist, ParamSet & Params, int & ClobberedRegUnits)

    Defined at line 778 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • bool handleArchive (StringRef Filename, Archive & Arch, function HandleObj, raw_ostream & OS)

    Defined at line 779 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • function createIRDebugDumper ()

    Defined at line 779 of file llvm/tools/lli/lli.cpp

  • int linkAndVerify ()

    Load and link the objects specified on the command line, but do not execute

    anything. Instead, attach a RuntimeDyldChecker instance and call it to

    verify the correctness of the linked memory.

    Defined at line 779 of file llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp

  • unsigned int getAttributeProperties (AttrKind Kind)

    Defined at line 780 of file llvm/lib/IR/Attributes.cpp

  • template <typename T>
    std::optional<T> parseULEB128 (DWARFDataExtractor & Data, DataExtractor::Cursor & Cursor)

    Parse a ULEB128 using the specified

    Defined at line 781 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp

  • unsigned int LLVMCountParamTypes (LLVMTypeRef FunctionTy)

    Obtain the number of parameters this function accepts.

    Defined at line 782 of file llvm/lib/IR/Core.cpp

  • Value * foldAndOrOfICmpsWithPow2AndWithZero (InstCombiner::BuilderTy & Builder, ICmpInst * LHS, ICmpInst * RHS, bool IsAnd, const SimplifyQuery & Q)

    (or (icmp eq X, 0), (icmp eq X, Pow2OrZero))

    -> (icmp eq (and X, Pow2OrZero), X)

    (and (icmp ne X, 0), (icmp ne X, Pow2OrZero))

    -> (icmp ne (and X, Pow2OrZero), X)

    Defined at line 783 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void breakSelfRecursivePHI (const Use * U, const PHINode * PHI, Value *& ValOut, Instruction *& CtxIOut, const PHINode ** PhiOut)

    Defined at line 783 of file llvm/lib/Analysis/ValueTracking.cpp

  • Error handleArgs (const CommonConfig & Config, const ELFConfig & ELFConfig, ElfType OutputElfType, Object & Obj)

    This function handles the high level operations of GNU objcopy including

    handling command line options. It's important to outline certain properties

    we expect to hold of the command line operations. Any operation that "keeps"

    should keep regardless of a remove. Additionally any removal should respect

    any previous removals. Lastly whether or not something is removed shouldn't

    depend a) on the order the options occur in or b) on some opaque priority

    system. The only priority is that keeps/copies overrule removes.

    Defined at line 783 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • basic_string getIRFileDisplayName (Any IR)

    Defined at line 784 of file llvm/lib/Passes/StandardInstrumentations.cpp

  • void p_bracket (struct parse * )

    - p_bracket - parse a bracketed character list

    Note a significant property of this code: if the allocset() did SETERROR,

    no set operations are done.

    Defined at line 784 of file llvm/lib/Support/regcomp.c

  • std::optional<TargetTransformInfo::ShuffleKind> isFixedVectorShuffle (ArrayRef VL, SmallVectorImpl<int> & Mask, AssumptionCache * AC)

    Checks if the vector of instructions can be represented as a shuffle, like:

    %x0 = extractelement

    <

    4 x i8> %x, i32 0

    %x3 = extractelement

    <

    4 x i8> %x, i32 3

    %y1 = extractelement

    <

    4 x i8> %y, i32 1

    %y2 = extractelement

    <

    4 x i8> %y, i32 2

    %x0x0 = mul i8 %x0, %x0

    %x3x3 = mul i8 %x3, %x3

    %y1y1 = mul i8 %y1, %y1

    %y2y2 = mul i8 %y2, %y2

    %ins1 = insertelement

    <

    4 x i8> poison, i8 %x0x0, i32 0

    %ins2 = insertelement

    <

    4 x i8> %ins1, i8 %x3x3, i32 1

    %ins3 = insertelement

    <

    4 x i8> %ins2, i8 %y1y1, i32 2

    %ins4 = insertelement

    <

    4 x i8> %ins3, i8 %y2y2, i32 3

    ret

    <

    4 x i8> %ins4

    can be transformed into:

    %1 = shufflevector

    <

    4 x i8> %x,

    <

    4 x i8> %y,

    <

    4 x i32>

    <i32

    0, i32 3, i32 5,

    i32 6>

    %2 = mul

    <

    4 x i8> %1, %1

    ret

    <

    4 x i8> %2

    Mask will return the Shuffle Mask equivalent to the extracted elements.

    TODO: Can we split off and reuse the shuffle mask detection from

    ShuffleVectorInst/getShuffleCost?

    Defined at line 784 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void yamlToPdb (StringRef Path)

    Defined at line 784 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • unsigned int getFullUnrollBoostingFactor (const EstimatedUnrollCost & Cost, unsigned int MaxPercentThresholdBoost)

    Computes the boosting factor for complete unrolling.

    If fully unrolling the loop would save a lot of RolledDynamicCost, it would

    be beneficial to fully unroll the loop even if unrolledcost is large. We

    use (RolledDynamicCost / UnrolledCost) to model the unroll benefits to adjust

    the unroll threshold.

    Defined at line 785 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • NewArchiveMember getArchiveMember (StringRef FileName)

    Defined at line 785 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • vector collectContributionData (iterator_range Units)

    Collect all the contributions to the string offsets table from all units,

    sort them by their starting offsets and remove duplicates.

    Defined at line 785 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • void mergeOperations (int MBBIStartPos, MachineBasicBlock & MBBCommon)

    Defined at line 785 of file llvm/lib/CodeGen/BranchFolding.cpp

  • bool hasAttributeProperty (AttrKind Kind, AttributeProperty Prop)

    Defined at line 786 of file llvm/lib/IR/Attributes.cpp

  • void LLVMGetParamTypes (LLVMTypeRef FunctionTy, LLVMTypeRef * Dest)

    Obtain the types of a function's parameters.

    The Dest parameter should point to a pre-allocated array of

    LLVMTypeRef at least LLVMCountParamTypes() large. On return, the

    first LLVMCountParamTypes() entries in the array will be populated

    with LLVMTypeRef instances.

    Parameters

    FunctionTy The function type to operate on.
    Dest Memory address of an array to be filled with result.

    Defined at line 786 of file llvm/lib/IR/Core.cpp

  • std::tuple<StringRef, bool, unsigned int> getGlobalObjectInfo (const GlobalObject * GO, const TargetMachine & TM)

    Defined at line 786 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • Error checkDyldCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char * CmdName)

    Defined at line 787 of file llvm/lib/Object/MachOObjectFile.cpp

  • int getOrderedBlocks (PHINode & Phi, BasicBlock *const LastBlock, int NumBlocks)

    Defined at line 787 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • void DisposeSuspendedLookupContext (void * Ctx)

    Defined at line 788 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • template <bool Is64>
    void encodeCrel (ArrayRef Relocs, raw_ostream & OS)

    Defined at line 788 of file llvm/lib/MC/ELFObjectWriter.cpp

  • bool scavengeStackSlot (MachineFrameInfo & MFI, int FrameIdx, bool StackGrowsDown, Align MaxAlign, BitVector & StackBytesFree)

    Assign frame object to an unused portion of the stack in the fixed stack

    object range. Return true if the allocation was successful.

    Defined at line 788 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • void mapInputsToGVNs (IRSimilarityCandidate & C, SetVector<Value *> & CurrentInputs, const DenseMap<Value *, Value *> & OutputMappings, std::vector<unsigned int> & EndInputNumbers)

    Find the GVN for the inputs that have been found by the CodeExtractor.

    Parameters

    C [in] - The IRSimilarityCandidate containing the region we are analyzing.
    CurrentInputs [in] - The set of inputs found by the CodeExtractor.
    OutputMappings [in] - The mapping of values that have been replaced by a new output value.
    EndInputNumbers [out] - The global value numbers for the extracted arguments.

    Defined at line 789 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • Error createInvalidTrieError (uint64_t Offset, const Twine & Msg)

    Defined at line 790 of file llvm/lib/CAS/OnDiskTrieRawHashMap.cpp

  • VPValue * scalarizeVPWidenPointerInduction (VPWidenPointerInductionRecipe * PtrIV, VPlan & Plan, VPBuilder & Builder)

    Scalarize a VPWidenPointerInductionRecipe by replacing it with a PtrAdd

    (IndStart, ScalarIVSteps (0, Step)). This is used when the recipe only

    generates scalar values.

    Defined at line 790 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool foldConsecutiveLoads (Instruction & I, const DataLayout & DL, TargetTransformInfo & TTI, AliasAnalysis & AA, const DominatorTree & DT)

    For a given BB instruction, evaluate all loads in the chain that form a

    pattern which suggests that the loads can be combined. The one and only use

    of the loads is to form a wider load.

    Defined at line 790 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • BranchInst * getExpectedExitLoopLatchBranch (Loop * L)

    Checks if

    has an exiting latch branch. There may also be other

    exiting blocks. Returns branch instruction terminating the loop

    latch if above check is successful, nullptr otherwise.

    Defined at line 791 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • Value * foldSelectICmpAndBinOp (Value * CondVal, Value * TrueVal, Value * FalseVal, Value * V, const APInt & AndMask, bool CreateAnd, InstCombiner::BuilderTy & Builder)

    We want to turn:

    (select (icmp eq (and X, C1), 0), Y, (BinOp Y, C2))

    into:

    IF C2 u>= C1

    (BinOp Y, (shl (and X, C1), C3))

    ELSE

    (BinOp Y, (lshr (and X, C1), C3))

    iff:

    0 on the RHS is the identity value (i.e add, xor, shl, etc...)

    C1 and C2 are both powers of 2

    where:

    IF C2 u>= C1

    C3 = Log(C2) - Log(C1)

    ELSE

    C3 = Log(C1) - Log(C2)

    This transform handles cases where:

    1. The icmp predicate is inverted

    2. The select operands are reversed

    3. The magnitude of C2 and C1 are flipped

    Defined at line 791 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • void suspendLookupTestLookupHandlerCallback (LLVMErrorRef Err, LLVMOrcCSymbolMapPairs Result, size_t NumPairs, void * RawCtx)

    Defined at line 792 of file llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp

  • bool shouldCheckArgs (CallBase & CI, const TargetLibraryInfo & TLI, const std::optional<Regex> & CheckFunctionsFilter)

    Returns true if the instrumentation should emit code to check arguments

    before a function call.

    Defined at line 792 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • void printMI (raw_ostream & OS, MFPrintState & State, const MachineInstr & MI)

    Defined at line 794 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • bool handleBuffer (StringRef Filename, MemoryBufferRef Buffer, function HandleObj, raw_ostream & OS)

    Defined at line 796 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void LLVMOrcDisposeJITTargetMachineBuilder (LLVMOrcJITTargetMachineBuilderRef JTMB)

    Dispose of a JITTargetMachineBuilder.

    Defined at line 796 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMStructTypeInContext (LLVMContextRef C, LLVMTypeRef * ElementTypes, unsigned int ElementCount, LLVMBool Packed)

    Create a new structure type in a context.

    A structure is specified by a list of inner elements/types and

    whether these can be packed together.

    Defined at line 794 of file llvm/lib/IR/Core.cpp

  • std::pair<bool, bool> addSegmentsWithValNo (LiveRange & Dst, VNInfo * DstValNo, const LiveRange & Src, const VNInfo * SrcValNo)

    Copy segments with value number

    from liverange

    to live

    range

    and use value number

    there.

    Defined at line 794 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • Function * promoteArguments (Function * F, FunctionAnalysisManager & FAM, unsigned int MaxElements, bool IsRecursive)

    PromoteArguments - This method checks the specified function to see if there

    are any promotable arguments and if it is safe to promote the function (for

    example, all callers are direct). If safe to promote some arguments, it

    calls the DoPromotion method.

    Defined at line 794 of file llvm/lib/Transforms/IPO/ArgumentPromotion.cpp

  • void initializeX86LoadValueInjectionLoadHardeningPassPassOnce (PassRegistry & Registry)

    Defined at line 795 of file llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp

  • optional shouldPragmaUnroll (Loop * L, const PragmaInfo & PInfo, const unsigned int TripMultiple, const unsigned int TripCount, unsigned int MaxTripCount, UnrollCostEstimator UCE, const TargetTransformInfo::UnrollingPreferences & UP)

    Defined at line 797 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • void PrintRelocationEntries (const MachOObjectFile * O, const relocation_iterator Begin, const relocation_iterator End, const uint64_t cputype, const bool verbose)

    Defined at line 797 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isAsciiPrintable (uint64_t CodePoint)

    Returns true if CodePoint represents a printable ASCII character.

    Defined at line 799 of file llvm/lib/Demangle/RustDemangle.cpp

  • bool isFuncletReturnInstr (MachineInstr & MI)

    Defined at line 799 of file llvm/lib/Target/X86/X86RegisterInfo.cpp

  • LLVMTypeRef LLVMStructType (LLVMTypeRef * ElementTypes, unsigned int ElementCount, LLVMBool Packed)

    Create a new structure type in the global context.

    Defined at line 800 of file llvm/lib/IR/Core.cpp

  • void initializePreISelIntrinsicLoweringLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 800 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp

  • bool haveCommonPrefix (MDNode * MIBStackContext, MDNode * CallsiteStackContext)

    Defined at line 800 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • raw_ostream & operator<< (raw_ostream & OS, const BDVState & State)

    Defined at line 801 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • StringRef handlePragmaClangSection (const GlobalObject * GO, SectionKind Kind)

    Defined at line 801 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • XXH128_hash_t XXH3_len_9to16_128b (const uint8_t * input, size_t len, const uint8_t * secret, uint64_t seed)

    Defined at line 801 of file llvm/lib/Support/xxhash.cpp

  • bool isAddRecSExtable (const SCEVAddRecExpr * AR, ScalarEvolution & SE)

    Return true if the given addrec can be sign-extended without changing its

    value.

    Defined at line 802 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void reportFastISelFailure (MachineFunction & MF, OptimizationRemarkEmitter & ORE, OptimizationRemarkMissed & R, bool ShouldAbort)

    Defined at line 802 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • void updateScopeLine (Instruction * ActiveSuspend, DISubprogram & SPToUpdate)

    Adjust the scope line of the funclet to the first line number after the

    suspend point. This avoids a jump in the line table from the function

    declaration (where prologue instructions are attributed to) to the suspend

    point.

    Only adjust the scope line when the files are the same.

    If no candidate line number is found, fallback to the line of ActiveSuspend.

    Defined at line 802 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool hasIntersectProperty (AttrKind Kind, AttributeProperty Prop)

    Defined at line 803 of file llvm/lib/IR/Attributes.cpp

  • bool unswitchTrivialSwitch (Loop & L, SwitchInst & SI, DominatorTree & DT, LoopInfo & LI, ScalarEvolution * SE, MemorySSAUpdater * MSSAU)

    Unswitch a trivial switch if the condition is loop invariant.

    This routine should only be called when loop code leading to the switch has

    been validated as trivial (no side effects). This routine checks if the

    condition is invariant and that at least one of the successors is a loop

    exit. This allows us to unswitch without duplicating the loop, making it

    trivial.

    If this routine fails to unswitch the switch it returns false.

    If the switch can be unswitched, this routine splits the preheader and

    copies the switch above that split. If the default case is one of the

    exiting cases, it copies the non-exiting cases and points them at the new

    preheader. If the default case is not exiting, it copies the exiting cases

    and points the default at the preheader. It preserves loop simplified form

    (splitting the exit blocks as necessary). It simplifies the switch within

    the loop by removing now-dead cases. If the default case is one of those

    unswitched, it replaces its destination with a new basic block containing

    only unreachable. Such basic blocks, while technically loop exits, are not

    considered for unswitching so this is a stable transform and the same

    switch will not be revisited. If after unswitching there is only a single

    in-loop successor, the switch is further simplified to an unconditional

    branch. Still more cleanup can be done with some simplifycfg like pass.

    If `SE` is not null, it will be updated based on the potential loop SCEVs

    invalidated by this.

    Defined at line 803 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void typesetLinesAndColumns (LinePrinter & P, uint32_t Start, const LineColumnEntry & E)

    Defined at line 804 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • bool isEligibleLoopForm (const Loop & Root)

    Defined at line 805 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • Value * cloneConstantExprWithNewAddressSpace (ConstantExpr * CE, unsigned int NewAddrSpace, const ValueToValueMapTy & ValueWithNewAddrSpace, const DataLayout * DL, const TargetTransformInfo * TTI)

    Similar to cloneInstructionWithNewAddressSpace, returns a clone of the

    constant expression `CE` with its operands replaced as specified in

    ValueWithNewAddrSpace.

    Defined at line 805 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • const char * lslow (struct lmat * , const char * , const char * , sopno , sopno )

    - slow - step through the string more deliberately

    Defined at line 809 of file llvm/lib/Support/regengine.inc

  • const char * sslow (struct smat * , const char * , const char * , sopno , sopno )

    - slow - step through the string more deliberately

    Defined at line 809 of file llvm/lib/Support/regengine.inc

  • char * LLVMOrcJITTargetMachineBuilderGetTargetTriple (LLVMOrcJITTargetMachineBuilderRef JTMB)

    Returns the target triple for the given JITTargetMachineBuilder as a string.

    The caller owns the resulting string as must dispose of it by calling

    LLVMDisposeMessage

    Defined at line 801 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcJITTargetMachineBuilderSetTargetTriple (LLVMOrcJITTargetMachineBuilderRef JTMB, const char * TargetTriple)

    Sets the target triple for the given JITTargetMachineBuilder to the given

    string.

    Defined at line 809 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMErrorRef LLVMOrcObjectLayerAddObjectFile (LLVMOrcObjectLayerRef ObjLayer, LLVMOrcJITDylibRef JD, LLVMMemoryBufferRef ObjBuffer)

    Add an object to an ObjectLayer to the given JITDylib.

    Adds a buffer representing an object file to the given JITDylib using the

    given ObjectLayer instance. This operation transfers ownership of the buffer

    to the ObjectLayer instance. The buffer should not be disposed of or

    referenced once this function returns.

    Resources associated with the given object will be tracked by the given

    JITDylib's default ResourceTracker.

    Defined at line 814 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMStructCreateNamed (LLVMContextRef C, const char * Name)

    Create an empty structure in a context having a specified name.

    Defined at line 806 of file llvm/lib/IR/Core.cpp

  • bool isPointerUseReplacable (const Use & U, bool HasNonAddressBits)

    Returns true if a use is either in an ICmp/PtrToInt or a Phi/Select that only

    feeds into them.

    Defined at line 806 of file llvm/lib/Analysis/Loads.cpp

  • bool doesHistoryAllowICP (const Instruction & Inst, StringRef Candidate)

    Check whether the indirect call promotion history of

    allows

    the promotion for

    If the profile count for the promotion candidate

    is

    NOMORE_ICP_MAGICNUM, it means

    has already been promoted

    for

    If we already have at least MaxNumPromotions

    NOMORE_ICP_MAGICNUM count values in the value profile of

    we

    cannot promote for

    anymore.

    Defined at line 806 of file llvm/lib/Transforms/IPO/SampleProfile.cpp

  • void collectCallSiteParameters (const MachineInstr * CallMI, ParamSet & Params)

    Try to interpret values loaded into registers that forward parameters

    for

    Store parameters with interpreted value into

    Defined at line 806 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void addMember (std::vector<NewArchiveMember> & Members, NewArchiveMember & NM)

    Defined at line 808 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool isLoopExitTestBasedOn (Value * V, BasicBlock * ExitingBB)

    Whether the current loop exit test is based on this value. Currently this

    is limited to a direct use in the loop condition.

    Defined at line 809 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • BranchProbability getAdjustedProbability (BranchProbability OrigProb, BranchProbability AdjustedSumProb)

    The helper function returns the branch probability that is adjusted

    or normalized over the new total

    Defined at line 809 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • GenericValue executeSelectInst (GenericValue Src1, GenericValue Src2, GenericValue Src3, Type * Ty)

    Defined at line 809 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • Instruction * foldNoWrapAdd (BinaryOperator & Add, InstCombiner::BuilderTy & Builder)

    Wrapping flags may allow combining constants separated by an extend.

    Defined at line 809 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • unsigned int CountNumOperands (StringRef AsmString, unsigned int Variant)

    Defined at line 810 of file llvm/utils/TableGen/AsmWriterEmitter.cpp

  • void initializeImplicitNullChecksPassOnce (PassRegistry & Registry)

    Defined at line 810 of file llvm/lib/CodeGen/ImplicitNullChecks.cpp

  • bool isAddSExtable (const SCEVAddExpr * A, ScalarEvolution & SE)

    Return true if the given add can be sign-extended without changing its

    value.

    Defined at line 810 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • ObjectFormatType parseFormat (StringRef EnvironmentName)

    Defined at line 810 of file llvm/lib/TargetParser/Triple.cpp

  • bool isNoopIntrinsic (Instruction * I)

    Returns true if

    is an intrinsic that does not read or write memory.

    Defined at line 810 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • pair collectShuffleElements (Value * V, SmallVectorImpl<int> & Mask, Value * PermittedRHS, InstCombinerImpl & IC, bool & Rerun)

    Defined at line 810 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • const char * LLVMGetStructName (LLVMTypeRef Ty)

    Obtain the name of a structure.

    Defined at line 811 of file llvm/lib/IR/Core.cpp

  • PartwordMaskValues createMaskInstrs (IRBuilderBase & Builder, Instruction * I, Type * ValueType, Value * Addr, Align AddrAlign, unsigned int MinWordSize)

    This is a helper function which builds instructions to provide

    values necessary for partword atomic operations. It takes an

    incoming address, Addr, and ValueType, and constructs the address,

    shift-amounts and masks needed to work with a larger value of size

    WordSize.

    AlignedAddr: Addr rounded down to a multiple of WordSize

    ShiftAmt: Number of bits to right-shift a WordSize value loaded

    from AlignAddr for it to have the same value as if

    ValueType was loaded from Addr.

    Mask: Value to mask with the value loaded from AlignAddr to

    include only the part that would've been loaded from Addr.

    Inv_Mask: The inverse of Mask.

    Defined at line 811 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • Value * findBasePointer (Value * I, int & Cache, int & KnownBases)

    For a given value or instruction, figure out what base ptr its derived from.

    For gc objects, this is simply itself. On success, returns a value which is

    the base pointer. (This is reliable and can be used for relocation.) On

    failure, returns nullptr.

    Defined at line 811 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool hasHugeExpression (ArrayRef Ops)

    Returns true if

    contains a huge SCEV (the subtree of S contains at

    least HugeExprThreshold nodes).

    Defined at line 813 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • raw_ostream & operator<< (raw_ostream & OS, DbgLoop D)

    Defined at line 813 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • bool canCreateAliasFor (Function * F)

    Whether this function may be replaced by an alias

    Defined at line 813 of file llvm/lib/Transforms/IPO/MergeFunctions.cpp

  • void addMember (std::vector<NewArchiveMember> & Members, StringRef FileName, bool FlattenArchive)

    Defined at line 813 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void collectZeroLocCovForVarsWithCrossCUReferencingAbstractOrigin (LocationStats & LocStats, DenseMap AbstractOriginFnCUs, AbstractOriginVarsTyMap & GlobalAbstractOriginFnInfo, CrossCUReferencingDIELocationTy & CrossCUReferencesToBeResolved)

    Collect zero location coverage for inlined variables which refer to

    a DW_AT_inline copy of subprogram that is in a different CU.

    Defined at line 813 of file llvm/tools/llvm-dwarfdump/Statistics.cpp

  • GlobalVariable * createPrivateConstGlobalForString (Module & M, StringRef Str)

    Create a non-const global initialized with the given string.

    Creates a writable global for Str so that we can pass it to the

    run-time lib. Runtime uses first 4 bytes of the string to store the

    frame ID, so the string needs to be mutable.

    Defined at line 814 of file llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

  • void remapExtractedInputs (ArrayRef ArgInputs, const DenseMap<Value *, Value *> & OutputMappings, SetVector<Value *> & RemappedArgInputs)

    Find the original value for the

    values if any one of them was

    replaced during a previous extraction.

    Parameters

    ArgInputs [in] - The inputs to be extracted by the code extractor.
    OutputMappings [in] - The mapping of values that have been replaced by a new output value.
    RemappedArgInputs [out] - The remapped values according to that will be extracted.

    Defined at line 814 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • bool expandUDivOrURem (BinaryOperator * Instr, const ConstantRange & XCR, const ConstantRange & YCR)

    Defined at line 814 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void legalizeAndOptimizeInductions (VPlan & Plan)

    Legalize VPWidenPointerInductionRecipe, by replacing it with a PtrAdd

    (IndStart, ScalarIVSteps (0, Step)) if only its scalar values are used, as

    VPWidenPointerInductionRecipe will generate vectors only. If some users

    require vectors while other require scalars, the scalar uses need to extract

    the scalars from the generated vectors (Note that this is different to how

    int/fp inductions are handled). Legalize extract-from-ends using uniform

    VPReplicateRecipe of wide inductions to use regular VPReplicateRecipe, so

    the correct end value is available. Also optimize

    VPWidenIntOrFpInductionRecipe, if any of its users needs scalar values, by

    providing them scalar steps built on the canonical scalar IV and update the

    original IV's users. This is an optional optimization to reduce the needs of

    vector extracts.

    Defined at line 816 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void ProfileUnOpInit (FoldingSetNodeID & ID, unsigned int Opcode, const Init * Op, const RecTy * Type)

    Defined at line 817 of file llvm/lib/TableGen/Record.cpp

  • template <typename Operand, typename Instruction>
    int getDebugOperandsForRegHelper (Instruction * MI, Register Reg)

    Defined at line 817 of file llvm/lib/CodeGen/MachineInstr.cpp

  • bool giveUpWithRemarks (MachineOptimizationRemarkEmitter * ORE, StringRef RemarkName, StringRef RemarkMessage, const DiagnosticLocation & Loc, const MachineBasicBlock * MBB)

    Defined at line 817 of file llvm/lib/CodeGen/ShrinkWrap.cpp

  • bool RequiresValue (const Option * O)

    Defined at line 818 of file llvm/lib/Support/CommandLine.cpp

  • bool isMulSExtable (const SCEVMulExpr * M, ScalarEvolution & SE)

    Return true if the given mul can be sign-extended without changing its

    value.

    Defined at line 818 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool isKnownNonZeroFromAssume (const Value * V, const SimplifyQuery & Q)

    Defined at line 818 of file llvm/lib/Analysis/ValueTracking.cpp

  • void LLVMStructSetBody (LLVMTypeRef StructTy, LLVMTypeRef * ElementTypes, unsigned int ElementCount, LLVMBool Packed)

    Set the contents of a structure type.

    Defined at line 819 of file llvm/lib/IR/Core.cpp

  • Error checkVersCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char ** LoadCmd, const char * CmdName)

    Defined at line 819 of file llvm/lib/Object/MachOObjectFile.cpp

  • template <typename SCCRangeT>
    LazyCallGraph::SCC * incorporateNewSCCRange (const SCCRangeT & NewSCCRange, LazyCallGraph & G, LazyCallGraph::Node & N, LazyCallGraph::SCC * C, CGSCCAnalysisManager & AM, CGSCCUpdateResult & UR)

    Helper function to update both the

    and the

    based on a range of newly

    added SCCs.

    The range of new SCCs must be in postorder already. The SCC they were split

    out of must be provided as

    The current node being mutated and

    triggering updates must be passed as

    This function returns the SCC containing

    This will be either

    if

    no new SCCs have been split out, or it will be the new SCC containing

    Defined at line 819 of file llvm/lib/Analysis/CGSCCPassManager.cpp

  • unsigned int getMetadataTypeOrder (const Metadata * MD)

    Defined at line 820 of file llvm/lib/Bitcode/Writer/ValueEnumerator.cpp

  • optional estimateLoopTripCount (Loop * L)

    Defined at line 820 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void removeMemProfMetadata (CallBase * Call)

    Defined at line 821 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • LLVMErrorRef LLVMOrcObjectLayerAddObjectFileWithRT (LLVMOrcObjectLayerRef ObjLayer, LLVMOrcResourceTrackerRef RT, LLVMMemoryBufferRef ObjBuffer)

    Add an object to an ObjectLayer using the given ResourceTracker.

    Adds a buffer representing an object file to the given ResourceTracker's

    JITDylib using the given ObjectLayer instance. This operation transfers

    ownership of the buffer to the ObjectLayer instance. The buffer should not

    be disposed of or referenced once this function returns.

    Resources associated with the given object will be tracked by

    ResourceTracker RT.

    Defined at line 821 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void preserveFakeUses (ilist_iterator_w_bits Begin, ilist_iterator_w_bits End)

    Detect any fake uses that follow a tail call and move them before the tail

    call. Ignore fake uses that use values that are def'd by or after the tail

    call.

    Defined at line 821 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool processPhi (PHINode & Phi, const TargetLibraryInfo & TLI, AliasAnalysis & AA, DomTreeUpdater & DTU)

    Defined at line 821 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • bool needsLFTR (Loop * L, BasicBlock * ExitingBB)

    linearFunctionTestReplace policy. Return true unless we can show that the

    current exit test is already sufficiently canonical.

    Defined at line 822 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • MCSection * selectExplicitSectionGlobal (const GlobalObject * GO, SectionKind Kind, const TargetMachine & TM, MCContext & Ctx, Mangler & Mang, unsigned int & NextUniqueID, bool Retain, bool ForceUnique)

    Defined at line 822 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • bool EatsUnboundedNumberOfValues (const Option * O)

    Defined at line 823 of file llvm/lib/Support/CommandLine.cpp

  • void addSDKVersionMD (const VersionTuple & V, Module & M, StringRef Name)

    Defined at line 823 of file llvm/lib/IR/Module.cpp

  • bool operator< (const ImpliedExtsEntry & LHS, StringRef RHS)

    Defined at line 824 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • bool hasSameSuccessors (MachineBasicBlock & BB, SmallPtrSetImpl<const MachineBasicBlock *> & Successors)

    Check if

    has exactly the successors in

    Defined at line 824 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • void EmitFastISel (const RecordKeeper & RK, raw_ostream & OS)

    Defined at line 824 of file llvm/utils/TableGen/FastISelEmitter.cpp

  • void computeVTableFuncs (ModuleSummaryIndex & Index, const GlobalVariable & V, const Module & M, VTableFuncList & VTableFuncs)

    Identify the function pointers referenced by vtable definition

    Defined at line 824 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • SubArchType parseSubArch (StringRef SubArchName)

    Defined at line 824 of file llvm/lib/TargetParser/Triple.cpp

  • void removeCallsiteMetadata (CallBase * Call)

    Defined at line 825 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • function createObjDebugDumper ()

    Defined at line 825 of file llvm/tools/lli/lli.cpp

  • void dumpStringOffsetsSection (raw_ostream & OS, DIDumpOptions DumpOpts, StringRef SectionName, const DWARFObject & Obj, const DWARFSection & StringOffsetsSection, StringRef StringSection, iterator_range Units, bool LittleEndian)

    Dump a DWARF string offsets section. This may be a DWARF v5 formatted

    string offsets section, where each compile or type unit contributes a

    number of entries (string offsets), with each contribution preceded by

    a header containing size and version number. Alternatively, it may be a

    monolithic series of string offsets, as generated by the pre-DWARF v5

    implementation of split DWARF; however, in that case we still need to

    collect contributions of units because the size of the offsets (4 or 8

    bytes) depends on the format of the referencing unit (DWARF32 or DWARF64).

    Defined at line 826 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • bool isIntrinsicCall (const CallBase * Call, Intrinsic::ID IID)

    Defined at line 827 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • bool isWhitespace (char C)

    Defined at line 828 of file llvm/lib/Support/CommandLine.cpp

  • bool operator< (StringRef LHS, const ImpliedExtsEntry & RHS)

    Defined at line 828 of file llvm/lib/TargetParser/RISCVISAInfo.cpp

  • template <typename FoldT, typename IsIdentityT, typename IsAbsorberT>
    const SCEV * constantFoldAndGroupOps (ScalarEvolution & SE, LoopInfo & LI, DominatorTree & DT, SmallVectorImpl<const SCEV *> & Ops, FoldT Fold, IsIdentityT IsIdentity, IsAbsorberT IsAbsorber)

    Performs a number of common optimizations on the passed

    If the

    whole expression reduces down to a single operand, it will be returned.

    The following optimizations are performed:

    * Fold constants using the

    function.

    * Remove identity constants satisfying

    * If a constant satisfies

    return it.

    * Sort operands by complexity.

    Defined at line 828 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void EmitAbbrev (MCStreamer * MCOS, uint64_t Name, uint64_t Form)

    Utility function to write a tuple for .debug_abbrev.

    Defined at line 829 of file llvm/lib/MC/MCDwarf.cpp

  • unsigned int getConcreteOpcode (unsigned int Opcode)

    Defined at line 829 of file llvm/lib/Target/X86/X86FloatingPoint.cpp

  • void LLVMOrcObjectLayerEmit (LLVMOrcObjectLayerRef ObjLayer, LLVMOrcMaterializationResponsibilityRef R, LLVMMemoryBufferRef ObjBuffer)

    Emit an object buffer to an ObjectLayer.

    Ownership of the responsibility object and object buffer pass to this

    function. The client is not responsible for cleanup.

    Defined at line 829 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void updateMemprofMetadata (CallBase * CI, const std::vector<Metadata *> & MIBList, OptimizationRemarkEmitter * ORE)

    Defined at line 829 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void moveBelowOrigChain (SelectionDAG * CurDAG, SDValue Load, SDValue Call, SDValue OrigChain)

    Replace the original chain operand of the call with

    load's chain operand and move load below the call's chain operand.

    Defined at line 829 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • bool mayCrossBoundary (uint64_t StartAddr, uint64_t Size, Align BoundaryAlignment)

    Check if the branch crosses the boundary.

    Parameters

    StartAddr start address of the fused/unfused branch.
    Size size of the fused/unfused branch.
    BoundaryAlignment alignment requirement of the branch.

    Defined at line 830 of file llvm/lib/MC/MCAssembler.cpp

  • const SCEV * getExactSDiv (const SCEV * LHS, const SCEV * RHS, ScalarEvolution & SE, bool IgnoreSignificantBits)

    Return an expression for LHS /s RHS, if it can be determined and if the

    remainder is known to be zero, or null otherwise. If IgnoreSignificantBits

    is true, expressions like (X * Y) /s Y are simplified to X, ignoring that

    the multiplication may overflow, which is useful when the result will be

    used in a context where the most significant bits are ignored.

    Defined at line 830 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • int prepareDumpIRFileDescriptor (StringRef DumpIRFilename)

    Callers are responsible for closing the returned file descriptor

    Defined at line 831 of file llvm/lib/Passes/StandardInstrumentations.cpp

  • bool canSkipDef (MemoryDef * D, bool DefVisibleToCaller)

    Check if we can ignore

    for DSE.

    Defined at line 831 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • bool shouldSpeculateInstrs (ilist_iterator_w_bits Begin, ilist_iterator_w_bits End, Loop * L)

    Determine whether the instructions in this range may be safely and cheaply

    speculated. This is not an important enough situation to develop complex

    heuristics. We handle a single arithmetic instruction along with any type

    conversions.

    Defined at line 831 of file llvm/lib/Transforms/Utils/LoopRotationUtils.cpp

  • bool isWhitespaceOrNull (char C)

    Defined at line 832 of file llvm/lib/Support/CommandLine.cpp

  • bool isPointerAlwaysReplaceable (const Value * From, const Value * To, const DataLayout & DL)

    Returns true if `To` is a null pointer, constant dereferenceable pointer or

    both pointers have the same underlying objects.

    Defined at line 832 of file llvm/lib/Analysis/Loads.cpp

  • void initializeX86DomainReassignmentPassOnce (PassRegistry & Registry)

    Defined at line 833 of file llvm/lib/Target/X86/X86DomainReassignment.cpp

  • bool allowsPreservingNUW (const User * U)

    A helper function to check if reassociating through an entry in the user

    chain would invalidate the GEP's nuw flag.

    Defined at line 833 of file llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp

  • MCSection * getWinCFISection (MCContext & Context, unsigned int * NextWinCFIID, MCSection * MainCFISec, const MCSection * TextSec)

    Defined at line 833 of file llvm/lib/MC/MCStreamer.cpp

  • void scalarizeMaskedCompressStore (const DataLayout & DL, bool HasBranchDivergence, CallInst * CI, DomTreeUpdater * DTU, bool & ModifiedDT)

    Defined at line 833 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • bool typeIDVisibleToRegularObj (StringRef TypeID, function_ref<bool (StringRef)> IsVisibleToRegularObj)

    Defined at line 834 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • Error checkNoteCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, std::list<MachOElement> & Elements)

    Defined at line 834 of file llvm/lib/Object/MachOObjectFile.cpp

  • bool isQuote (char C)

    Defined at line 836 of file llvm/lib/Support/CommandLine.cpp

  • void handleNonPrevailingComdat (GlobalValue & GV, int & NonPrevailingComdats)

    Checks whether the given global value is in a non-prevailing comdat

    (comdat containing values the linker indicated were not prevailing,

    which we then dropped to available_externally), and if so, removes

    it from the comdat. This is called for all global values to ensure the

    comdat is empty rather than leaving an incomplete comdat. It is needed for

    regular LTO modules, in case we are in a mixed-LTO mode (both regular

    and thin LTO modules) compilation. Since the regular LTO module will be

    linked first in the final native link, we want to make sure the linker

    doesn't select any of these incomplete comdats that would be left

    in the regular LTO module without this cleanup.

    Defined at line 836 of file llvm/lib/LTO/LTO.cpp

  • void EmitGenDwarfAbbrev (MCStreamer * MCOS)

    When generating dwarf for assembly source files this emits

    the data for .debug_abbrev section which contains three DIEs.

    Defined at line 836 of file llvm/lib/MC/MCDwarf.cpp

  • bool isUpdateCounterIntrinsic (Function & F)

    ===----------------------------------------------------------------------===//

    Defined at line 837 of file llvm/lib/Analysis/DXILResource.cpp

  • void updateIDTMetaData (Instruction & Inst, const SmallVectorImpl<InstrProfValueData> & CallTargets, uint64_t Sum)

    Update indirect call target profile metadata for

    Usually

    is the sum of counts of all the targets for

    If it is 0, it means updateIDTMetaData is used to mark a

    certain target to be promoted already. If it is not zero,

    we expect to use it to update the total count in the value profile.

    Defined at line 838 of file llvm/lib/Transforms/IPO/SampleProfile.cpp

  • LLVMTypeRef LLVMGetTypeByName (LLVMModuleRef M, const char * Name)

    Deprecated: Use LLVMGetTypeByName2 instead.

    Defined at line 852 of file llvm/lib/IR/Core.cpp

  • void LLVMOrcDisposeObjectLayer (LLVMOrcObjectLayerRef ObjLayer)

    Dispose of an ObjectLayer.

    Defined at line 837 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • const TargetRegisterClass * getRegClassForUnfoldedLoad (const X86InstrInfo & TII, unsigned int Opcode)

    Compute the register class for the unfolded load.

    FIXME: This should probably live in X86InstrInfo, potentially by adding

    a way to unfold into a newly created vreg rather than requiring a register

    input.

    Defined at line 837 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp

  • optional shouldFullUnroll (Loop * L, const TargetTransformInfo & TTI, DominatorTree & DT, ScalarEvolution & SE, const SmallPtrSetImpl<const Value *> & EphValues, const unsigned int FullUnrollTripCount, UnrollCostEstimator UCE, const TargetTransformInfo::UnrollingPreferences & UP)

    Defined at line 838 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • bool CanWidenIV (FlattenInfo & FI, DominatorTree * DT, LoopInfo * LI, ScalarEvolution * SE, AssumptionCache * AC, const TargetTransformInfo * TTI)

    Defined at line 838 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • Libcall getOutlineAtomicLibcall (MachineInstr & MI)

    Defined at line 839 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • bool matchIntrinsicType (Type * Ty, ArrayRef<Intrinsic::IITDescriptor> & Infos, SmallVectorImpl<Type *> & ArgTys, SmallVectorImpl<DeferredIntrinsicMatchPair> & DeferredChecks, bool IsDeferredCheck)

    Defined at line 839 of file llvm/lib/IR/Intrinsics.cpp

  • void initializeEarlyIfConverterLegacyPassOnce (PassRegistry & Registry)

    Defined at line 841 of file llvm/lib/CodeGen/EarlyIfConversion.cpp

  • const char * getFailureName (ImportFailureReason Reason)

    Defined at line 846 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void LLVMOrcIRTransformLayerSetTransform (LLVMOrcIRTransformLayerRef IRTransformLayer, LLVMOrcIRTransformLayerTransformFunction TransformFunction, void * Ctx)

    Set the transform function of the provided transform layer, passing through a

    pointer to user provided context.

    Defined at line 841 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • unsigned int LLVMCountStructElementTypes (LLVMTypeRef StructTy)

    Get the number of elements defined inside the structure.

    Defined at line 825 of file llvm/lib/IR/Core.cpp

  • void LLVMGetStructElementTypes (LLVMTypeRef StructTy, LLVMTypeRef * Dest)

    Get the elements within a structure.

    The function is passed the address of a pre-allocated array of

    LLVMTypeRef at least LLVMCountStructElementTypes() long. After

    invocation, this array will be populated with the structure's

    elements. The objects in the destination array will have a lifetime

    of the structure type itself, which is the lifetime of the context it

    is contained in.

    Defined at line 829 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMStructGetTypeAtIndex (LLVMTypeRef StructTy, unsigned int i)

    Get the type of the element at a given index in the structure.

    Defined at line 835 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsPackedStruct (LLVMTypeRef StructTy)

    Determine whether a structure is packed.

    Defined at line 840 of file llvm/lib/IR/Core.cpp

  • VersionTuple getSDKVersionMD (Metadata * MD)

    Defined at line 841 of file llvm/lib/IR/Module.cpp

  • optional IntersectSignedRange (ScalarEvolution & SE, const std::optional<InductiveRangeCheck::Range> & R1, const InductiveRangeCheck::Range & R2)

    Defined at line 842 of file llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp

  • bool OptimizeAwayTrappingUsesOfLoads (GlobalVariable * GV, Constant * LV, const DataLayout & DL, function_ref<TargetLibraryInfo &(Function &)> GetTLI)

    The specified global has only one non-null value stored into it. If there

    are uses of the loaded value that would trap if the loaded value is

    dynamically null, then we know that they cannot be reachable with a null

    optimize away the load.

    Defined at line 842 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool isObjectSizeLessThanOrEq (Value * V, uint64_t MaxSize, const DataLayout & DL)

    If we can determine that all possible objects pointed to by the provided

    pointer value are, not only dereferenceable, but also definitively less than

    or equal to the provided maximum size, then return true. Otherwise, return

    false (constant global values and allocas fall into this category).

    FIXME: This should probably live in ValueTracking (or similar).

    Defined at line 842 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • bool isAgainstBoundary (uint64_t StartAddr, uint64_t Size, Align BoundaryAlignment)

    Check if the branch is against the boundary.

    Parameters

    StartAddr start address of the fused/unfused branch.
    Size size of the fused/unfused branch.
    BoundaryAlignment alignment requirement of the branch.

    Defined at line 843 of file llvm/lib/MC/MCAssembler.cpp

  • bool canTurnIntoCOPY (const TargetRegisterClass * DstRC, const TargetRegisterClass * SrcRC)

    Helper function for selectTruncOrPtrToInt and selectAnyext.

    Returns true if DstRC lives on a floating register class and

    SrcRC lives on a 128-bit vector class.

    Defined at line 843 of file llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp

  • void TestHeaderEncodeError (const Header & H, basic_string ExpectedErrorMsg)

    Defined at line 843 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • LLVMBool LLVMIsOpaqueStruct (LLVMTypeRef StructTy)

    Determine whether a structure is opaque.

    Defined at line 844 of file llvm/lib/IR/Core.cpp

  • bool isNoAliasOrByValArgument (const Value * V)

    Defined at line 844 of file llvm/lib/Analysis/AliasAnalysis.cpp

  • bool handleFile (StringRef Filename, function HandleObj, raw_ostream & OS)

    Defined at line 845 of file llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp

  • void addFramePointerAttrs (AttributeList & Attrs, LLVMContext & Context, unsigned int ParamIndex, uint64_t Size, Align Alignment, bool NoAlias)

    Defined at line 845 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • void failForInvalidBundles (const CallBase & I, StringRef Name, ArrayRef<uint32_t> AllowedBundles)

    Defined at line 845 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • InsertAction computeInsertAction (ArchiveOperation Operation, const object::Archive::Child & Member, StringRef Name, std::vector<StringRef>::iterator & Pos, StringMap<int> & MemberCount)

    Defined at line 845 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool CanMergeValues (Value * First, Value * Second)

    Return true if we can choose one of these values to use in place of the

    other. Note that we will always choose the non-undef value to keep.

    Defined at line 846 of file llvm/lib/Transforms/Utils/Local.cpp

  • void getCodeExtractorArguments (OutlinableRegion & Region, std::vector<unsigned int> & InputGVNs, DenseSet<unsigned int> & NotSame, DenseMap<Value *, Value *> & OutputMappings, SetVector<Value *> & ArgInputs, SetVector<Value *> & Outputs)

    Find the input GVNs and the output values for a region of Instructions.

    Using the code extractor, we collect the inputs to the extracted function.

    The

    can be identified as needing to be ignored in this function.

    It should be checked whether it should be ignored after a call to this

    function.

    Parameters

    Region [in,out] - The region of code to be analyzed.
    InputGVNs [out] - The global value numbers for the extracted arguments.
    NotSame [in] - The global value numbers in the region that do not have the same constant value in the regions structurally similar to
    OutputMappings [in] - The mapping of values that have been replaced by a new output value after extraction.
    ArgInputs [out] - The values of the inputs to the extracted function.
    Outputs [out] - The set of values extracted by the CodeExtractor as outputs.

    Defined at line 846 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void eraseTerminatorAndDCECond (Instruction * TI, MemorySSAUpdater * MSSAU)

    Defined at line 847 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void recordTypeIdCompatibleVtableReferences (ModuleSummaryIndex & Index, const GlobalVariable & V, SmallVectorImpl<MDNode *> & Types)

    Record vtable definition

    for each type metadata it references.

    Defined at line 847 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • void verifySameBranchInstructions (MachineBasicBlock * MBB1, MachineBasicBlock * MBB2)

    Defined at line 847 of file llvm/lib/CodeGen/IfConversion.cpp

  • Value * foldSignedTruncationCheck (ICmpInst * ICmp0, ICmpInst * ICmp1, Instruction & CxtI, InstCombiner::BuilderTy & Builder)

    General pattern:

    X

    &

    Y

    Where Y is checking that all the high bits (covered by a mask 4294967168)

    are uniform, i.e. %arg

    &

    4294967168 can be either 4294967168 or 0

    Pattern can be one of:

    %t = add i32 %arg, 128

    %r = icmp ult i32 %t, 256

    Or

    %t0 = shl i32 %arg, 24

    %t1 = ashr i32 %t0, 24

    %r = icmp eq i32 %t1, %arg

    Or

    %t0 = trunc i32 %arg to i8

    %t1 = sext i8 %t0 to i32

    %r = icmp eq i32 %t1, %arg

    This pattern is a signed truncation check.

    And X is checking that some bit in that same mask is zero.

    I.e. can be one of:

    %r = icmp sgt i32 %arg, -1

    Or

    %t = and i32 %arg, 2147483648

    %r = icmp eq i32 %t, 0

    Since we are checking that all the bits in that mask are the same,

    and a particular bit is zero, what we are really checking is that all the

    masked bits are zero.

    So this should be transformed to:

    %r = icmp ult i32 %arg, 128

    Defined at line 847 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • LLVMBool LLVMIsLiteralStruct (LLVMTypeRef StructTy)

    Determine whether a structure is literal.

    Defined at line 848 of file llvm/lib/IR/Core.cpp

  • void AssignProtectedObjSet (const StackObjSet & UnassignedObjs, int & ProtectedObjs, MachineFrameInfo & MFI, bool StackGrowsDown, int64_t & Offset, Align & MaxAlign)

    AssignProtectedObjSet - Helper function to assign large stack objects (i.e.,

    those required to be close to the Stack Protector) to stack offsets.

    Defined at line 848 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp

  • void propagateMemProfHelper (const CallBase * OrigCall, CallBase * ClonedCall, MDNode * InlinedCallsiteMD, OptimizationRemarkEmitter * ORE)

    Update the metadata on the inlined copy ClonedCall of a call OrigCall in the

    inlined callee body, based on the callsite metadata InlinedCallsiteMD from

    the call that was inlined.

    Defined at line 849 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool hasTiedUseOf (MachineInstr & MI, Register Reg)

    Defined at line 852 of file llvm/lib/CodeGen/SplitKit.cpp

  • AliasResult underlyingObjectsAlias (AAResults * AA, const DataLayout & DL, const MemoryLocation & LocA, const MemoryLocation & LocB)

    Returns NoAlias/MayAliass/MustAlias for two memory locations based upon their

    underlaying objects. If LocA and LocB are known to not alias (for any reason:

    tbaa, non-overlapping regions etc), then it is known there is no dependecy.

    Otherwise the underlying objects are checked to see if they point to

    different identifiable objects.

    Defined at line 852 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • void TestHeaderDecodeError (StringRef Bytes, basic_string ExpectedErrorMsg)

    Defined at line 853 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • bool CanPropagatePredecessorsForPHIs (BasicBlock * BB, BasicBlock * Succ, const SmallPtrSetImpl<BasicBlock *> & BBPreds)

    Return true if we can fold BB, an almost-empty BB ending in an unconditional

    branch to Succ, into Succ.

    Assumption: Succ is the single successor for BB.

    Defined at line 854 of file llvm/lib/Transforms/Utils/Local.cpp

  • uint16_t fixupRegValue (struct InternalInstruction * insn, OperandType type, uint8_t index, uint8_t * valid)

    Consult an operand type to determine the meaning of the reg or R/M field. If

    the operand is an XMM operand, for example, an operand would be XMM0 instead

    of AX, which readModRM() would otherwise misinterpret it as.

    Parameters

    insn - The instruction containing the operand.
    type - The operand type.
    index - The existing value of the field as reported by readModRM().
    valid - The address of a uint8_t. The target is set to 1 if the field is valid for the register class; 0 if not.

    Returns

    - The proper value.

    Defined at line 855 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool needPadding (uint64_t StartAddr, uint64_t Size, Align BoundaryAlignment)

    Check if the branch needs padding.

    Parameters

    StartAddr start address of the fused/unfused branch.
    Size size of the fused/unfused branch.
    BoundaryAlignment alignment requirement of the branch.

    Defined at line 855 of file llvm/lib/MC/MCAssembler.cpp

  • Loop * getInnerMostLoop (Loop * L)

    Defined at line 855 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp

  • DISubroutineType * CreateFunctionType (unsigned int NumArgs)

    Defined at line 855 of file llvm/examples/Kaleidoscope/Chapter9/toy.cpp

  • void transferImplicitOperands (MachineInstr * MI, const TargetRegisterInfo * TRI)

    transferImplicitOperands - MI is a pseudo-instruction, and the lowered

    replacement instructions immediately precede it. Copy any implicit

    operands from MI to the replacement instruction.

    Defined at line 855 of file llvm/lib/CodeGen/TargetInstrInfo.cpp

  • uint16_t fixupRMValue (struct InternalInstruction * insn, OperandType type, uint8_t index, uint8_t * valid)

    Consult an operand type to determine the meaning of the reg or R/M field. If

    the operand is an XMM operand, for example, an operand would be XMM0 instead

    of AX, which readModRM() would otherwise misinterpret it as.

    Parameters

    insn - The instruction containing the operand.
    type - The operand type.
    index - The existing value of the field as reported by readModRM().
    valid - The address of a uint8_t. The target is set to 1 if the field is valid for the register class; 0 if not.

    Returns

    - The proper value.

    Defined at line 856 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • LLVMTypeRef LLVMGetTypeByName2 (LLVMContextRef C, const char * Name)

    Obtain a Type from a context by its registered name.

    Defined at line 856 of file llvm/lib/IR/Core.cpp

  • void generateGetDirectiveCategory (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Defined at line 856 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • bool haveSameOperands (const IntrinsicInst & I, const IntrinsicInst & E, unsigned int NumOperands)

    Returns true iff the 2 intrinsics have the same operands, limiting the

    comparison to the first NumOperands.

    Defined at line 857 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • bool greaterWithBias (BlockFrequency A, BlockFrequency B, BlockFrequency EntryFreq)

    Compare 2 BlockFrequency's with a small penalty for

    In order to be conservative, we apply a X% penalty to account for

    increased icache pressure and static heuristics. For small frequencies

    we use only the numerators to improve accuracy. For simplicity, we assume

    the penalty is less than 100%

    TODO(iteratee): Use 64-bit fixed point edge frequencies everywhere.

    Defined at line 858 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • bool skipUpdateDueToValidation (GlobalVariable & GV, function_ref<bool (StringRef)> IsVisibleToRegularObj)

    Defined at line 858 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • MCSymbol * FindMatchingEpilog (const std::vector<WinEH::Instruction> & EpilogInstrs, const std::vector<MCSymbol *> & Epilogs, const WinEH::FrameInfo * info)

    Returns the epilog symbol of an epilog with the exact same unwind code

    sequence, if it exists. Otherwise, returns nullptr.

    EpilogInstrs - Unwind codes for the current epilog.

    Epilogs - Epilogs that potentialy match the current epilog.

    Defined at line 859 of file llvm/lib/MC/MCWin64EH.cpp

  • Instruction * foldSetClearBits (SelectInst & Sel, InstCombiner::BuilderTy & Builder)

    Canonicalize a set or clear of a masked set of constant bits to

    select-of-constants form.

    Defined at line 859 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • template <typename T, llvm::endianness Endian>
    Error readCoverageMappingData (InstrProfSymtab & ProfileNames, StringRef CovMap, StringRef FuncRecords, std::vector<BinaryCoverageReader::ProfileMappingRecord> & Records, StringRef CompilationDir, std::vector<std::string> & Filenames)

    Defined at line 859 of file llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  • void addAsyncContextAttrs (AttributeList & Attrs, LLVMContext & Context, unsigned int ParamIndex)

    Defined at line 860 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool isInertARCValue (Value * V, SmallPtrSet<Value *, 1> & VisitedPhis)

    This function returns true if the value is inert. An ObjC ARC runtime call

    taking an inert operand can be safely deleted.

    Defined at line 860 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • StructType * buildFrameType (Function & F, coro::Shape & Shape, FrameDataInfo & FrameData, bool OptimizeFrame)

    Build a struct that will keep state for an active coroutine.

    struct f.frame {

    ResumeFnTy ResumeFnAddr;

    ResumeFnTy DestroyFnAddr;

    ... promise (if present) ...

    int ResumeIndex;

    ... spills ...

    };

    Defined at line 860 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • AttrKind determinePointerAccessAttrs (Argument * A, const SmallPtrSet<Argument *, 8> & SCCNodes)

    Returns Attribute::None, Attribute::ReadOnly or Attribute::ReadNone.

    Defined at line 860 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • Error loadDylibs ()

    Defined at line 862 of file llvm/tools/lli/lli.cpp

  • void LLVMOrcObjectTransformLayerSetTransform (LLVMOrcObjectTransformLayerRef ObjTransformLayer, LLVMOrcObjectTransformLayerTransformFunction TransformFunction, void * Ctx)

    Set the transform function on an LLVMOrcObjectTransformLayer.

    Defined at line 861 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMGetSubtypes (LLVMTypeRef Tp, LLVMTypeRef * Arr)

    Returns type's subtypes

    Defined at line 862 of file llvm/lib/IR/Core.cpp

  • Error parseBuildVersionCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, SmallVectorImpl<const char *> & BuildTools, uint32_t LoadCommandIndex)

    Defined at line 862 of file llvm/lib/Object/MachOObjectFile.cpp

  • bool hasSelfReference (MDNode * N)

    Defined at line 863 of file llvm/lib/IR/Metadata.cpp

  • bool isCalleeLoad (SDValue Callee, SDValue & Chain, bool HasCallSeq)

    Return true if call address is a load and it can be

    moved below CALLSEQ_START and the chains leading up to the call.

    Return the CALLSEQ_START by reference as a second output.

    In the case of a tail call, there isn't a callseq node between the call

    chain and the load.

    Defined at line 864 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • void p_b_term (struct parse * , cset * )

    - p_b_term - parse one term of a bracketed character list

    Defined at line 864 of file llvm/lib/Support/regcomp.c

  • bool doesInstructionSetFPSW (MachineInstr & MI)

    Defined at line 865 of file llvm/lib/Target/X86/X86FloatingPoint.cpp

  • pair parseTwoOperandConstraint (StringRef S, ArrayRef<SMLoc> Loc)

    Defined at line 865 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • void computeVariableSummary (ModuleSummaryIndex & Index, const GlobalVariable & V, DenseSet<GlobalValue::GUID> & CantBePromoted, const Module & M, SmallVectorImpl<MDNode *> & Types)

    Defined at line 865 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • int fixupReg (struct InternalInstruction * insn, const struct OperandSpecifier * op)

    Consult an operand specifier to determine which of the fixup*Value functions

    to use in correcting readModRM()'ss interpretation.

    Parameters

    insn - See fixup*Value().
    op - The operand specifier.

    Returns

    - 0 if fixup was successful; -1 if the register returned was

    invalid for its class.

    Defined at line 865 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • void computeKnownBitsFromCmp (const Value * V, Predicate Pred, Value * LHS, Value * RHS, KnownBits & Known, const SimplifyQuery & Q)

    Defined at line 865 of file llvm/lib/Analysis/ValueTracking.cpp

  • void InitHeader (Header & H)

    Populate a GSYM header with valid values.

    Defined at line 866 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • Version parseVersion (StringRef Name)

    Takes a StringRef like "clang 4.0.0.0 (other nonsense 123)" and parses out

    the version number.

    Defined at line 866 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • std::optional<PartStore> matchPartStore (Instruction & I, const DataLayout & DL)

    Defined at line 866 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • void printBerkeleyTotals ()

    Defined at line 866 of file llvm/tools/llvm-size/llvm-size.cpp

  • bool isODR (const Function * F)

    Returns true if

    is either weak_odr or linkonce_odr.

    Defined at line 867 of file llvm/lib/Transforms/IPO/MergeFunctions.cpp

  • void addSwiftSelfAttrs (AttributeList & Attrs, LLVMContext & Context, unsigned int ParamIndex)

    Defined at line 867 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • const SCEV * BinomialCoefficient (const SCEV * It, unsigned int K, ScalarEvolution & SE, Type * ResultTy)

    Compute BC(It, K). The result has width W. Assume, K > 0.

    Defined at line 867 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • optional shouldPartialUnroll (const unsigned int LoopSize, const unsigned int TripCount, UnrollCostEstimator UCE, const TargetTransformInfo::UnrollingPreferences & UP)

    Defined at line 868 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • void checkGlobalVariableScope (DIScope * Context)

    Defined at line 869 of file llvm/lib/IR/DIBuilder.cpp

  • LLVMTypeRef LLVMArrayType (LLVMTypeRef ElementType, unsigned int ElementCount)

    Create a fixed size array type that refers to a specific type.

    The created type will exist in the context that its element type

    exists in.

    Defined at line 870 of file llvm/lib/IR/Core.cpp

  • char getSymbolNMTypeChar (ELFObjectFileBase & Obj, content_iterator I)

    Defined at line 870 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • optional IntersectUnsignedRange (ScalarEvolution & SE, const std::optional<InductiveRangeCheck::Range> & R1, const InductiveRangeCheck::Range & R2)

    Defined at line 871 of file llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp

  • void exitOnLazyCallThroughFailure ()

    Defined at line 872 of file llvm/tools/lli/lli.cpp

  • bool hasConcreteDefImpl (Value * V, SmallPtrSetImpl<Value *> & Visited, unsigned int Depth)

    Recursive helper for hasConcreteDef(). Unfortunately, this currently boils

    down to checking that all operands are constant and listing instructions

    that may hide undef.

    Defined at line 872 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • void stripValuesNotDefiningMask (Register Reg, LiveInterval::SubRange & SR, LaneBitmask LaneMask, const SlotIndexes & Indexes, const TargetRegisterInfo & TRI, unsigned int ComposeSubRegIdx)

    For each VNI in

    check whether or not that value defines part

    of the mask describe by

    and if not, remove that value

    from

    Defined at line 872 of file llvm/lib/CodeGen/LiveInterval.cpp

  • int getNextFPInstruction (int I)

    Defined at line 873 of file llvm/lib/Target/X86/X86FloatingPoint.cpp

  • optional getExtractIndex (const Instruction * E)

    Defined at line 873 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • CondCode getImplicitCondFromMI (unsigned int Opc)

    Defined at line 873 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp

  • Expected loadModule (StringRef Path, ThreadSafeContext TSCtx)

    Defined at line 874 of file llvm/tools/lli/lli.cpp

  • LLVMOrcDumpObjectsRef LLVMOrcCreateDumpObjects (const char * DumpDir, const char * IdentifierOverride)

    Create a DumpObjects instance.

    DumpDir specifies the path to write dumped objects to. DumpDir may be empty

    in which case files will be dumped to the working directory.

    IdentifierOverride specifies a file name stem to use when dumping objects.

    If empty then each MemoryBuffer's identifier will be used (with a .o suffix

    added if not already present). If an identifier override is supplied it will

    be used instead, along with an incrementing counter (since all buffers will

    use the same identifier, the resulting files will be named

    <ident

    >.o,

    <ident

    >.2.o,

    <ident

    >.3.o, and so on). IdentifierOverride should not contain

    an extension, as a .o suffix will be added by DumpObjects.

    Defined at line 876 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMArrayType2 (LLVMTypeRef ElementType, uint64_t ElementCount)

    Create a fixed size array type that refers to a specific type.

    The created type will exist in the context that its element type

    exists in.

    Defined at line 874 of file llvm/lib/IR/Core.cpp

  • bool removeTriviallyEmptyRange (IntrinsicInst & EndI, InstCombinerImpl & IC, std::function<bool (const IntrinsicInst &)> IsStart)

    Remove trivially empty start/end intrinsic ranges, i.e. a start

    immediately followed by an end (ignoring debuginfo or other

    start/end intrinsics in between). As this handles only the most trivial

    cases, tracking the nesting level is not needed:

    call

    .foo.start(i1 0)

    call

    .foo.start(i1 0) ; This one won't be skipped: it will be removed

    call

    .foo.end(i1 0)

    call

    .foo.end(i1 0) ;

    &I

    Defined at line 876 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • bool testSubClass (const CodeGenRegisterClass * A, const CodeGenRegisterClass * B)

    Returns true if RC is a strict subclass.

    RC is a sub-class of this class if it is a valid replacement for any

    instruction operand where a register of this classis required. It must

    satisfy these conditions:

    1. All RC registers are also in this.

    2. The RC spill size must not be smaller than our spill size.

    3. RC spill alignment must be compatible with ours.

    Defined at line 877 of file llvm/utils/TableGen/Common/CodeGenRegisters.cpp

  • XXH128_hash_t XXH3_len_0to16_128b (const uint8_t * input, size_t len, const uint8_t * secret, uint64_t seed)

    Assumption: `secret` size is >= XXH3_SECRET_SIZE_MIN

    Defined at line 877 of file llvm/lib/Support/xxhash.cpp

  • LLVMTypeRef LLVMPointerType (LLVMTypeRef ElementType, unsigned int AddressSpace)

    Create a pointer type that points to a defined type.

    The created type will exist in the context that its pointee type

    exists in.

    Defined at line 878 of file llvm/lib/IR/Core.cpp

  • Value * extractMaskedValue (IRBuilderBase & Builder, Value * WideWord, const PartwordMaskValues & PMV)

    Defined at line 878 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • void mergeWriterContexts (WriterContext * Dst, WriterContext * Src)

    Merge the

    writer context into

    Defined at line 878 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void generateGetDirectiveLanguages (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Defined at line 878 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • MCSectionELF * selectELFSectionForGlobal (MCContext & Ctx, const GlobalObject * GO, SectionKind Kind, Mangler & Mang, const TargetMachine & TM, bool EmitUniqueSection, unsigned int Flags, unsigned int * NextUniqueID, const MCSymbolELF * AssociatedSymbol, const MachineJumpTableEntry * MJTE)

    Defined at line 878 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • Error ignoreStrippedErrors (Error E)

    Defined at line 879 of file llvm/lib/Object/COFFObjectFile.cpp

  • bool isLoadCombineCandidate (Instruction * Or)

    See if this `or` looks like an load widening reduction, i.e. that it

    consists of an `or`/`shl`/`zext`/`load` nodes only. Note that we don't

    ensure that the pattern is *really* a load widening reduction,

    we do not ensure that it can really be replaced with a widened load,

    only that it mostly looks like one.

    Defined at line 879 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • unsigned int encodeSEHRegNum (MCContext & Ctx, MCRegister Reg)

    Defined at line 881 of file llvm/lib/MC/MCStreamer.cpp

  • LazyCallGraph::SCC & updateCGAndAnalysisManagerForPass (LazyCallGraph & G, LazyCallGraph::SCC & InitialC, LazyCallGraph::Node & N, CGSCCAnalysisManager & AM, CGSCCUpdateResult & UR, FunctionAnalysisManager & FAM, bool FunctionPass)

    Defined at line 881 of file llvm/lib/Analysis/CGSCCPassManager.cpp

  • unsigned int getIntrinsicOpcode (bool HasSideEffects, bool IsConvergent)

    Defined at line 882 of file llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp

  • LLVMOrcLLJITBuilderRef LLVMOrcCreateLLJITBuilder ()

    Create an LLVMOrcLLJITBuilder.

    The client owns the resulting LLJITBuilder and should dispose of it using

    LLVMOrcDisposeLLJITBuilder once they are done with it.

    Defined at line 899 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcDisposeLLJITBuilder (LLVMOrcLLJITBuilderRef Builder)

    Dispose of an LLVMOrcLLJITBuilderRef. This should only be called if ownership

    has not been passed to LLVMOrcCreateLLJIT (e.g. because some error prevented

    that function from being called).

    Defined at line 903 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void Verify (const Function & F, const DominatorTree & DT, const CFGDeadness & CD)

    Defined at line 888 of file llvm/lib/IR/SafepointIRVerifier.cpp

  • void LLVMOrcDisposeDumpObjects (LLVMOrcDumpObjectsRef DumpObjects)

    Dispose of a DumpObjects instance.

    Defined at line 883 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMErrorRef LLVMOrcDumpObjects_CallOperator (LLVMOrcDumpObjectsRef DumpObjects, LLVMMemoryBufferRef * ObjBuffer)

    Dump the contents of the given MemoryBuffer.

    Defined at line 887 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMGetElementType (LLVMTypeRef Ty)

    Obtain the element type of an array or vector type.

    Defined at line 896 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetNumContainedTypes (LLVMTypeRef Tp)

    Return the number of types in the derived type.

    Defined at line 903 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMPointerTypeIsOpaque (LLVMTypeRef Ty)

    Determine whether a pointer is opaque.

    True if this is an instance of an opaque PointerType.

    Defined at line 883 of file llvm/lib/IR/Core.cpp

  • const Function * getParent (const Value * V)

    Defined at line 885 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • void simplifyARM64Opcodes (std::vector<WinEH::Instruction> & Instructions, bool Reverse)

    Defined at line 885 of file llvm/lib/MC/MCWin64EH.cpp

  • void EmitGenDwarfAranges (MCStreamer * MCOS, const MCSymbol * InfoSectionSymbol)

    When generating dwarf for assembly source files this emits the data for

    .debug_aranges section. This section contains a header and a table of pairs

    of PointerSize'ed values for the address and size of section(s) with line

    table entries.

    Defined at line 885 of file llvm/lib/MC/MCDwarf.cpp

  • Error checkRpathCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex)

    Defined at line 886 of file llvm/lib/Object/MachOObjectFile.cpp

  • LegalizeResult createAtomicLibcall (MachineIRBuilder & MIRBuilder, MachineInstr & MI)

    Defined at line 886 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • LLVMTypeRef LLVMVectorType (LLVMTypeRef ElementType, unsigned int ElementCount)

    Create a vector type that contains a defined type and has a specific

    number of elements.

    The created type will exist in the context thats its element type

    exists in.

    Defined at line 887 of file llvm/lib/IR/Core.cpp

  • void initializeX86CmovConverterPassPassOnce (PassRegistry & Registry)

    Defined at line 887 of file llvm/lib/Target/X86/X86CmovConversion.cpp

  • bool isLoadOrStore (const Instruction * I)

    Returns true if the load or store can be analyzed. Atomic and volatile

    operations have properties which this analysis does not understand.

    Defined at line 887 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • void * operator new (size_t Bytes, llvm::MCContext & C, size_t Alignment)

    operator new and delete aren't allowed inside namespaces.

    The throw specifications are mandated by the standard.

    Placement new for using the MCContext's allocator.

    This placement form of operator new uses the MCContext's allocator for

    obtaining memory. It is a non-throwing new, which means that it returns

    null on error. (If that is what the allocator does. The current does, so if

    this ever changes, this operator will have to be changed, too.)

    Usage looks like this (assuming there's an MCContext 'Context' in scope):

    Please note that you cannot use delete on the pointer; it must be

    deallocated using an explicit destructor call followed by

    Parameters

    Bytes The number of bytes to allocate. Calculated by the compiler.
    C The MCContext that provides the allocator.
    Alignment The alignment of the allocated memory (if the underlying allocator supports it).

    Returns

    The allocated memory. Could be NULL.

    Code

                                                    
                                                         // Default alignment (8)
                                                         IntegerLiteral *Ex = new (Context) IntegerLiteral(arguments);
                                                         // Specific alignment
                                                         IntegerLiteral *Ex2 = new (Context, 4) IntegerLiteral(arguments);
                                                    
                                                

    Defined at line 888 of file llvm/include/llvm/MC/MCContext.h

  • void dumpMachineInstrRangeWithSlotIndex (int B, int E, const LiveIntervals & LIS, const char *const header, Register VReg)

    Dump the range of instructions from B to E with their slot indexes.

    Defined at line 888 of file llvm/lib/CodeGen/InlineSpiller.cpp

  • Constant * getOrInsertGlobal (Module & M, StringRef Name, Type * Ty)

    Defined at line 889 of file llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

  • Printable PrintNodeInfo (PBQP::RegAlloc::PBQPRAGraph::NodeId NId, const PBQP::RegAlloc::PBQPRAGraph & G)

    Create Printable object for node and register info.

    Defined at line 889 of file llvm/lib/CodeGen/RegAllocPBQP.cpp

  • Value * insertMaskedValue (IRBuilderBase & Builder, Value * WideWord, Value * Updated, const PartwordMaskValues & PMV)

    Defined at line 889 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • bool TopoOrderRC (const CodeGenRegisterClass & A, const CodeGenRegisterClass & B)

    Sorting predicate for register classes. This provides a topological

    ordering that arranges all register classes before their sub-classes.

    Register classes with the same registers, spill size, and alignment form a

    clique. They will be ordered alphabetically.

    Defined at line 889 of file llvm/utils/TableGen/Common/CodeGenRegisters.cpp

  • bool isCoalescable (const MachineInstr & MI)

    Defined at line 890 of file llvm/lib/CodeGen/RegAllocFast.cpp

  • bool runImpl (Function & F, const TargetLibraryInfo & TLI, const TargetTransformInfo & TTI, AliasAnalysis & AA, DominatorTree * DT)

    Defined at line 890 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • bool mergeConsecutivePartStores (ArrayRef<PartStore> Parts, unsigned int Width, const DataLayout & DL, TargetTransformInfo & TTI)

    Defined at line 890 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • LLVMTypeRef LLVMScalableVectorType (LLVMTypeRef ElementType, unsigned int ElementCount)

    Create a vector type that contains a defined type and has a scalable

    number of elements.

    The created type will exist in the context thats its element type

    exists in.

    Defined at line 891 of file llvm/lib/IR/Core.cpp

  • unique_ptr parseIR (LLVMContext & C, const char * IR)

    Defined at line 891 of file llvm/unittests/IR/VFABIDemanglerTest.cpp

  • int llvm_size_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 891 of file llvm/tools/llvm-size/llvm-size.cpp

  • Function * cloneCandidateFunction (Function * F, unsigned int NSpecs)

    Clone the function

    and remove the ssa_copy intrinsics added by

    the SCCPSolver in the cloned version.

    Defined at line 893 of file llvm/lib/Transforms/IPO/FunctionSpecialization.cpp

  • int mingw_noop_main ()

    Defined at line 894 of file llvm/tools/lli/lli.cpp

  • StringRef getFuncName (const StringMap<InstrProfWriter::ProfilingData>::value_type & Val)

    Defined at line 895 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • unsigned int getOpcodeWithCC (unsigned int Opc, CondCode CC)

    Defined at line 895 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp

  • bool narrowUDivOrURem (BinaryOperator * Instr, const ConstantRange & XCR, const ConstantRange & YCR)

    Try to shrink a udiv/urem's width down to the smallest power of two that's

    sufficient to contain its operands.

    Defined at line 895 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • bool isSimpleIVUser (Instruction * I, const Loop * L, ScalarEvolution * SE)

    Return true if this instruction generates a simple SCEV

    expression in terms of that IV.

    This is similar to IVUsers' isInteresting() but processes each instruction

    non-recursively when the operand is already known to be a simpleIVUser.

    Defined at line 896 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp

  • VPWidenInductionRecipe * getOptimizableIVOf (VPValue * VPV, PredicatedScalarEvolution & PSE)

    Check if

    is an untruncated wide induction, either before or after the

    increment. If so return the header IV (before the increment), otherwise

    return null.

    Defined at line 897 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void operator delete (void * Ptr, llvm::MCContext & C, size_t )

    Placement delete companion to the new above.

    This operator is just a companion to the new above. There is no way of

    invoking it directly; see the new operator for more details. This operator

    is called implicitly by the compiler if a placement new expression using

    the MCContext throws in the object constructor.

    Defined at line 898 of file llvm/include/llvm/MC/MCContext.h

  • bool notDifferentParent (const Value * O1, const Value * O2)

    Defined at line 898 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • XXH128_hash_t XXH128_mix32B (XXH128_hash_t acc, const uint8_t * input_1, const uint8_t * input_2, const uint8_t * secret, uint64_t seed)

    A bit slower than XXH3_mix16B, but handles multiply by zero better.

    Defined at line 899 of file llvm/lib/Support/xxhash.cpp

  • void dumpAddrSection (raw_ostream & OS, DWARFDataExtractor & AddrData, DIDumpOptions DumpOpts, uint16_t Version, uint8_t AddrSize)

    Dump the .debug_addr section.

    Defined at line 899 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • Value * simplifyMulInst (Value * Op0, Value * Op1, bool IsNSW, bool IsNUW, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for a Mul, see if we can fold the result.

    If not, this returns null.

    Defined at line 899 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • basic_string getFuncName (const SampleProfileMap::value_type & Val)

    Defined at line 900 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • unsigned int adjCycles (unsigned int Cyc, int Delta)

    Adjust cycles with downward saturation.

    Defined at line 900 of file llvm/lib/CodeGen/EarlyIfConversion.cpp

  • bool hasInitializesAttr (Instruction * I)

    Defined at line 901 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • void initialize (TargetLibraryInfoImpl & TLI, const Triple & T, const llvm::StringTable & StandardNames, VectorLibrary VecLib)

    Initialize the set of available library functions based on the specified

    target triple. This should be carefully written so that a missing target

    triple gets a sane set of defaults.

    Defined at line 901 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • bool isEndbrImm64 (uint64_t Imm)

    Defined at line 901 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • void populateEHOperandBundle (VPCandidateInfo & Cand, int & BlockColors, SmallVectorImpl<OperandBundleDef> & OpBundles)

    When generating value profiling calls on Windows routines that make use of

    handler funclets for exception processing an operand bundle needs to attached

    to the called function. This routine will set

    to contain the

    funclet information, if any is needed, that should be placed on the generated

    value profiling call for the value profile candidate call.

    Defined at line 901 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • Instruction * foldSelectZeroOrFixedOp (SelectInst & SI, InstCombinerImpl & IC)

    select (x == 0), 0, x * y --> freeze(y) * x

    select (y == 0), 0, x * y --> freeze(x) * y

    select (x == 0), undef, x * y --> freeze(y) * x

    select (x == undef), 0, x * y --> freeze(y) * x

    Usage of mul instead of 0 will make the result more poisonous,

    so the operand that was not checked in the condition should be frozen.

    The latter folding is applied only when a constant compared with x is

    is a vector consisting of 0 and undefs. If a constant compared with x

    is a scalar undefined value or undefined vector then an expression

    should be already folded into a constant.

    This also holds all operations such that Op(0) == 0

    e.g. Shl, Umin, etc

    Defined at line 902 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • void propagateMemProfMetadata (Function * Callee, CallBase & CB, bool ContainsMemProfMetadata, const ValueMap<const Value *, WeakTrackingVH> & VMap, OptimizationRemarkEmitter * ORE)

    Update memprof related metadata (!memprof and !callsite) based on the

    inlining of Callee into the callsite at CB. The updates include merging the

    inlined callee's callsite metadata with that of the inlined call,

    and moving the subset of any memprof contexts to the inlined callee

    allocations if they match the new inlined call stack.

    Defined at line 903 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool needsRuntimeHookUnconditionally (const Triple & TT)

    Defined at line 904 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • bool FlattenLoopPair (FlattenInfo & FI, DominatorTree * DT, LoopInfo * LI, ScalarEvolution * SE, AssumptionCache * AC, const TargetTransformInfo * TTI, LPMUpdater * U, MemorySSAUpdater * MSSAU, const LoopAccessInfo & LAI)

    Defined at line 904 of file llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  • void cloneLoopBlocks (Loop * L, unsigned int IterNumber, bool PeelLast, BasicBlock * InsertTop, BasicBlock * InsertBot, BasicBlock * OrigPreHeader, SmallVectorImpl<std::pair<BasicBlock *, BasicBlock *>> & ExitEdges, SmallVectorImpl<BasicBlock *> & NewBlocks, LoopBlocksDFS & LoopBlocks, ValueToValueMapTy & VMap, ValueToValueMapTy & LVMap, DominatorTree * DT, LoopInfo * LI, ArrayRef LoopLocalNoAliasDeclScopes, ScalarEvolution & SE)

    Clones the body of the loop L, putting it between

    and

    Parameters

    IterNumber The serial number of the iteration currently being peeled off.
    PeelLast Peel off the last iterations from
    ExitEdges The exit edges of the original loop.
    NewBlocks [out] A list of the blocks in the newly created clone
    VMap [out] The value map between the loop and the new clone.
    LoopBlocks A helper for DFS-traversal of the loop.
    LVMap A value-map that maps instructions from the original loop to instructions in the last peeled-off iteration.

    Defined at line 904 of file llvm/lib/Transforms/Utils/LoopPeel.cpp

  • bool hasConcreteDef (Value * V)

    Return true if the given value is concrete. We must prove that undef can

    never reach it.

    TODO: If we decide that this is a good approach to checking for undef, we

    may factor it into a common location.

    Defined at line 905 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • template <typename T>
    void filterFunctions (T & ProfileMap)

    Defined at line 906 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void LLVMOrcLLJITBuilderSetJITTargetMachineBuilder (LLVMOrcLLJITBuilderRef Builder, LLVMOrcJITTargetMachineBuilderRef JTMB)

    Set the JITTargetMachineBuilder to be used when constructing the LLJIT

    instance. Calling this function is optional: if it is not called then the

    LLJITBuilder will use JITTargeTMachineBuilder::detectHost to construct a

    JITTargetMachineBuilder.

    This function takes ownership of the JTMB argument: clients should not

    dispose of the JITTargetMachineBuilder after calling this function.

    Defined at line 907 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void ConstantPropUsersOf (Value * V, const DataLayout & DL, TargetLibraryInfo * TLI)

    Walk the use list of V, constant folding all of the instructions that are

    foldable.

    Defined at line 907 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • Value * followLCSSA (Value * SV)

    If SV is a LCSSA PHI node with a single incoming value, return the incoming

    value.

    Defined at line 908 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • Error checkOperandCount (StringRef EncodingString, ArrayRef Values, uint64_t ExpectedOperands)

    Defined at line 908 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • void generateClauseSet (ArrayRef VerClauses, raw_ostream & OS, StringRef ClauseSetPrefix, const Directive & Dir, const DirectiveLanguage & DirLang, Frontend FE)

    Generate a simple enum set with the give clauses.

    Defined at line 908 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • vector computeNewArchiveMembers (ArchiveOperation Operation, object::Archive * OldArchive)

    We have to walk this twice and computing it is not trivial, so creating an

    explicit std::vector is actually fairly efficient.

    Defined at line 908 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool isOperandKill (const MachineOperand & MO, MachineRegisterInfo * MRI)

    Defined at line 909 of file llvm/lib/CodeGen/MachineLICM.cpp

  • XXH128_hash_t XXH3_len_17to128_128b (const uint8_t * input, size_t len, const uint8_t * secret, size_t secretSize, uint64_t seed)

    Defined at line 909 of file llvm/lib/Support/xxhash.cpp

  • bool isValidForAlternation (unsigned int Opcode)

    Example of unsupported opcode is SDIV that can potentially cause UB if the

    "shuffled out" lane would result in division by zero.

    Defined at line 910 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • ConstantRangeList getIntersectedInitRangeList (ArrayRef<ArgumentInitInfo> Args, bool CallHasNoUnwindAttr)

    Return the intersected range list of the initializes attributes of "Args".

    "Args" are call arguments that alias to each other.

    If any argument in "Args" doesn't have dead_on_unwind attr and

    "CallHasNoUnwindAttr" is false, return empty.

    Defined at line 910 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • int restorezOSStdHandleAutoConversion (int FD)

    Defined at line of file

  • void operator<< (const testing::internal::Secret & , int )

    Ensures that there is at least one operator

    <

    <

    in the global namespace.

    See Message

    &

    operator

    <

    <

    (...) below for why.

    Defined at line of file

  • void llvm_blake3_compress_in_place_sse2 (uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags)

    Defined at line of file

  • void llvm_blake3_compress_xof_sse2 (const uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags, uint8_t[64] out)

    Defined at line of file

  • void llvm_blake3_hash_many_sse2 (const uint8_t *const * inputs, size_t num_inputs, size_t blocks, const uint32_t[8] key, uint64_t counter, _Bool increment_counter, uint8_t flags, uint8_t flags_start, uint8_t flags_end, uint8_t * out)

    Defined at line of file

  • void llvm_blake3_compress_in_place_sse41 (uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags)

    Defined at line of file

  • void llvm_blake3_compress_xof_sse41 (const uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags, uint8_t[64] out)

    Defined at line of file

  • void llvm_blake3_hash_many_sse41 (const uint8_t *const * inputs, size_t num_inputs, size_t blocks, const uint32_t[8] key, uint64_t counter, _Bool increment_counter, uint8_t flags, uint8_t flags_start, uint8_t flags_end, uint8_t * out)

    Defined at line of file

  • void llvm_blake3_hash_many_avx2 (const uint8_t *const * inputs, size_t num_inputs, size_t blocks, const uint32_t[8] key, uint64_t counter, _Bool increment_counter, uint8_t flags, uint8_t flags_start, uint8_t flags_end, uint8_t * out)

    Defined at line of file

  • void llvm_blake3_compress_in_place_avx512 (uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags)

    Defined at line of file

  • void llvm_blake3_compress_xof_avx512 (const uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags, uint8_t[64] out)

    Defined at line of file

  • void llvm_blake3_hash_many_avx512 (const uint8_t *const * inputs, size_t num_inputs, size_t blocks, const uint32_t[8] key, uint64_t counter, _Bool increment_counter, uint8_t flags, uint8_t flags_start, uint8_t flags_end, uint8_t * out)

    Defined at line of file

  • void llvm_blake3_xof_many_avx512 (const uint32_t[8] cv, const uint8_t[64] block, uint8_t block_len, uint64_t counter, uint8_t flags, uint8_t * out, size_t outblocks)

    Defined at line of file

  • unsigned int LLVMGetArrayLength (LLVMTypeRef ArrayTy)

    Obtain the length of an array type.

    This only works on types that represent arrays.

    Defined at line 907 of file llvm/lib/IR/Core.cpp

  • Value * performMaskedAtomicOp (BinOp Op, IRBuilderBase & Builder, Value * Loaded, Value * Shifted_Inc, Value * Inc, const PartwordMaskValues & PMV)

    Emit IR to implement a masked version of a given atomicrmw

    operation. (That is, only the bits under the Mask should be

    affected by the operation)

    Defined at line 909 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • uint64_t LLVMGetArrayLength2 (LLVMTypeRef ArrayTy)

    Obtain the length of an array type.

    This only works on types that represent arrays.

    Defined at line 911 of file llvm/lib/IR/Core.cpp

  • Error tryEnableDebugSupport (orc::LLJIT & J)

    Try to enable debugger support for the given instance.

    This alway returns success, but prints a warning if it's not able to enable

    debugger support.

    Defined at line 911 of file llvm/tools/lli/lli.cpp

  • DILocalVariable * createLocalVariable (LLVMContext & VMContext, SmallVectorImpl<TrackingMDNodeRef> & PreservedNodes, DIScope * Context, StringRef Name, unsigned int ArgNo, DIFile * File, unsigned int LineNo, DIType * Ty, bool AlwaysPreserve, DIFlags Flags, uint32_t AlignInBits, MDTupleTypedArrayWrapper Annotations)

    Defined at line 911 of file llvm/lib/IR/DIBuilder.cpp

  • MCSection * selectELFSectionForGlobal (MCContext & Ctx, const GlobalObject * GO, SectionKind Kind, Mangler & Mang, const TargetMachine & TM, bool Retain, bool EmitUniqueSection, unsigned int Flags, unsigned int * NextUniqueID)

    Defined at line 911 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • char * lstep (struct re_guts * , sopno , sopno , char * , int , char * )

    - step - map set of states reachable before char to set reachable after

    Defined at line 912 of file llvm/lib/Support/regengine.inc

  • long sstep (struct re_guts * , sopno , sopno , long , int , long )

    - step - map set of states reachable before char to set reachable after

    Defined at line 912 of file llvm/lib/Support/regengine.inc

  • void LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator (LLVMOrcLLJITBuilderRef Builder, LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction F, void * Ctx)

    Set an ObjectLinkingLayer creator function for this LLJIT instance.

    Defined at line 913 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool containsProfilingIntrinsics (Module & M)

    Check if the module contains uses of any profiling intrinsics.

    Defined at line 913 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • bool isLoopCounter (PHINode * Phi, Loop * L, ScalarEvolution * SE)

    Return true if the given phi is a "counter" in L. A counter is an

    add recurance (of integer or pointer type) with an arbitrary start, and a

    step of 1. Note that L must have exactly one latch.

    Defined at line 914 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • char getSymbolNMTypeChar (COFFObjectFile & Obj, symbol_iterator I)

    Defined at line 914 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • unsigned int LLVMGetPointerAddressSpace (LLVMTypeRef PointerTy)

    Obtain the address space of a pointer type.

    This only works on types that represent pointers.

    Defined at line 915 of file llvm/lib/IR/Core.cpp

  • CallInst * canonicalizeConstantArg0ToArg1 (CallInst & Call)

    Defined at line 915 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • bool canBeCheaplyTransformed (ScalarEvolution & SE, const SCEVAddRecExpr * Phi, const SCEVAddRecExpr * Requested, bool & InvertStep)

    Check whether we can cheaply express the requested SCEV in terms of

    the available PHI SCEV by truncation and/or inversion of the step.

    Defined at line 915 of file llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp

  • bool printPTERNLOGComments (const MCInst * MI, raw_ostream & OS, const MCInstrInfo & MCII)

    Defined at line 915 of file llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp

  • bool isInstructionPairAdd (Instruction * A, Instruction * B)

    Defined at line 916 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • unsigned int getBestDestForJumpOnUndef (BasicBlock * BB)

    GetBestDestForBranchOnUndef - If we determine that the specified block ends

    in an undefined jump, decide which block is best to revector to.

    Since we can pick an arbitrary destination, we pick the successor with the

    fewest predecessors. This should reduce the in-degree of the others.

    Defined at line 916 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • size_t parseBackslash (StringRef Src, size_t I, SmallString<128> & Token)

    Backslashes are interpreted in a rather complicated way in the Windows-style

    command line, because backslashes are used both to separate path and to

    escape double quote. This method consumes runs of backslashes as well as the

    following double quote if it's escaped.

    * If an even number of backslashes is followed by a double quote, one

    backslash is output for every pair of backslashes, and the last double

    quote remains unconsumed. The double quote will later be interpreted as

    the start or end of a quoted string in the main loop outside of this

    function.

    * If an odd number of backslashes is followed by a double quote, one

    backslash is output for every pair of backslashes, and a double quote is

    output for the last pair of backslash-double quote. The double quote is

    consumed in this case.

    * Otherwise, backslashes are interpreted literally.

    Defined at line 916 of file llvm/lib/Support/CommandLine.cpp

  • void computeAliasSummary (ModuleSummaryIndex & Index, const GlobalAlias & A, DenseSet<GlobalValue::GUID> & CantBePromoted)

    Defined at line 916 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • void findExtractedInputToOverallInputMapping (OutlinableRegion & Region, std::vector<unsigned int> & InputGVNs, SetVector<Value *> & ArgInputs)

    Look over the inputs and map each input argument to an argument in the

    overall function for the OutlinableRegions. This creates a way to replace

    the arguments of the extracted function with the arguments of the new

    overall function.

    Parameters

    Region [in,out] - The region of code to be analyzed.
    InputGVNs [in] - The global value numbering of the input values collected.
    ArgInputs [in] - The values of the arguments to the extracted function.

    Defined at line 916 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • Error checkEncryptCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, uint64_t cryptoff, uint64_t cryptsize, const char ** LoadCmd, const char * CmdName)

    Defined at line 918 of file llvm/lib/Object/MachOObjectFile.cpp

  • Instruction * shrinkSplatShuffle (TruncInst & Trunc, InstCombiner::BuilderTy & Builder)

    Try to narrow the width of a splat shuffle. This could be generalized to any

    shuffle with a constant operand, but we limit the transform to avoid

    creating a shuffle type that targets may not be able to lower effectively.

    Defined at line 919 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • PHINode * findInnerReductionPhi (Loop * L, Value * V, SmallVectorImpl<Instruction *> & HasNoWrapInsts)

    Check V's users to see if it is involved in a reduction in L.

    Defined at line 919 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • int runOrcJIT (const char * ProgName)

    Defined at line 919 of file llvm/tools/lli/lli.cpp

  • unsigned int LLVMGetVectorSize (LLVMTypeRef VectorTy)

    Obtain the (possibly scalable) number of elements in a vector type.

    This only works on types that represent vectors (fixed or scalable).

    Defined at line 919 of file llvm/lib/IR/Core.cpp

  • void extractSingletonRegisterForAsmOperand (MatchableInfo::AsmOperand & Op, const AsmMatcherInfo & Info, StringRef RegisterPrefix)

    extractSingletonRegisterForAsmOperand - Extract singleton register,

    if present, from specified token.

    Defined at line 919 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • void * operator new[] (size_t Bytes, llvm::MCContext & C, size_t Alignment)

    This placement form of operator new[] uses the MCContext's allocator for

    obtaining memory. It is a non-throwing new[], which means that it returns

    null on error.

    Usage looks like this (assuming there's an MCContext 'Context' in scope):

    Please note that you cannot use delete on the pointer; it must be

    deallocated using an explicit destructor call followed by

    Parameters

    Bytes The number of bytes to allocate. Calculated by the compiler.
    C The MCContext that provides the allocator.
    Alignment The alignment of the allocated memory (if the underlying allocator supports it).

    Returns

    The allocated memory. Could be NULL.

    Code

                                                    
                                                         // Default alignment (8)
                                                         char *data = new (Context) char[10];
                                                         // Specific alignment
                                                         char *data = new (Context, 4) char[10];
                                                    
                                                

    Defined at line 921 of file llvm/include/llvm/MC/MCContext.h

  • template <typename T>
    bool equalsLoadStoreHelper (const T & LHS, const Expression & RHS)

    Defined at line 921 of file llvm/lib/Transforms/Scalar/NewGVN.cpp

  • Error writeListEntryAddress (StringRef EncodingName, raw_ostream & OS, uint64_t Addr, uint8_t AddrSize, bool IsLittleEndian)

    Defined at line 921 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • void TestHeaderEncodeDecode (const Header & H, endianness ByteOrder)

    Defined at line 921 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • KnownBits divComputeLowBit (KnownBits Known, const KnownBits & LHS, const KnownBits & RHS, bool Exact)

    Defined at line 921 of file llvm/lib/Support/KnownBits.cpp

  • void PrintStackTraceSignalHandler (void * )

    Defined at line 922 of file llvm/lib/Support/Unix/Signals.inc

  • bool needBWI (MVT VT)

    Defined at line 922 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • void dumpRnglistsSection (raw_ostream & OS, DWARFDataExtractor & rnglistData, function_ref LookupPooledAddress, DIDumpOptions DumpOpts)

    Dump the .debug_rnglists or .debug_rnglists.dwo section (DWARF v5).

    Defined at line 922 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • LLVMErrorRef LLVMOrcCreateLLJIT (LLVMOrcLLJITRef * Result, LLVMOrcLLJITBuilderRef Builder)

    Create an LLJIT instance from an LLJITBuilder.

    This operation takes ownership of the Builder argument: clients should not

    dispose of the builder after calling this function (even if the function

    returns an error). If a null Builder argument is provided then a

    default-constructed LLJITBuilder will be used.

    On success the resulting LLJIT instance is uniquely owned by the client and

    automatically manages the memory of all JIT'd code and all modules that are

    transferred to it (e.g. via LLVMOrcLLJITAddLLVMIRModule). Disposing of the

    LLJIT instance will free all memory managed by the JIT, including JIT'd code

    and not-yet compiled modules.

    Defined at line 923 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool canReplaceGEPIdxWithZero (InstCombinerImpl & IC, GetElementPtrInst * GEPI, Instruction * MemI, unsigned int & Idx)

    If we're indexing into an object of a known size, and the outer index is

    not a constant, but having any value but zero would lead to undefined

    behavior, replace it with zero.

    For example, if we have:

    .a = private unnamed_addr constant [1 x i32] [i32 12], align 4

    ...

    %arrayidx = getelementptr inbounds [1 x i32]*

    .a, i64 0, i64 %x

    ... = load i32* %arrayidx, align 4

    Then we know that we can replace %x in the GEP with i64 0.

    FIXME: We could fold any GEP index to zero that would cause UB if it were

    not zero. Currently, we only handle the first such index. Also, we could

    also search through non-zero constant indices if we kept track of the

    offsets those indices implied.

    Defined at line 924 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • bool readOpcode (struct InternalInstruction * insn)

    Read the opcode (except the ModR/M byte in the case of extended or escape

    opcodes).

    Defined at line 925 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • void p_b_cclass (struct parse * , cset * )

    - p_b_cclass - parse a character-class name and deal with it

    Defined at line 926 of file llvm/lib/Support/regcomp.c

  • LLVMValueRef LLVMGetConstantPtrAuthPointer (LLVMValueRef PtrAuth)

    Get the pointer value for the associated ConstantPtrAuth constant.

    Defined at line 923 of file llvm/lib/IR/Core.cpp

  • bool isInstructionPairMul (Instruction * A, Instruction * B)

    Defined at line 926 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • Value * selectIncomingValueForBlock (Value * OldVal, BasicBlock * BB, int & IncomingValues)

    Determines the value to use as the phi node input for a block.

    Select between

    any value that we know flows from

    to a particular phi on the basis of which one (if either) is not

    undef. Update IncomingValues based on the selected value.

    Parameters

    OldVal The value we are considering selecting.
    BB The block that the value flows in from.
    IncomingValues A map from block-to-value for other phi inputs that we have examined.

    Defined at line 926 of file llvm/lib/Transforms/Utils/Local.cpp

  • LLVMValueRef LLVMGetConstantPtrAuthKey (LLVMValueRef PtrAuth)

    Get the key value for the associated ConstantPtrAuth constant.

    Defined at line 927 of file llvm/lib/IR/Core.cpp

  • InlineParams getInlineParamsFromOptLevel (OptimizationLevel Level)

    Defined at line 927 of file llvm/lib/Passes/PassBuilderPipelines.cpp

  • bool isGEPFoldable (GetElementPtrInst * GEP, const TargetTransformInfo * TTI)

    Defined at line 927 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp

  • PDBFile & loadPDB (StringRef Path, std::unique_ptr<IPDBSession> & Session)

    Defined at line 927 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • unsigned int updatePhysDepsUpwards (const MachineInstr & MI, unsigned int Height, int & RegUnits, const TargetSchedModel & SchedModel, const TargetInstrInfo * TII, const TargetRegisterInfo * TRI)

    Identify physreg dependencies for MI when scanning instructions upwards.

    Return the issue height of MI after considering any live regunits.

    Height is the issue height computed from virtual register dependencies alone.

    Defined at line 927 of file llvm/lib/CodeGen/MachineTraceMetrics.cpp

  • void eliminateBlockCases (BasicBlock * BB, std::vector<ValueEqualityComparisonCase> & Cases)

    Given a vector of bb/value pairs, remove any entries

    in the list that match the specified block.

    Defined at line 928 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Instruction * createOverflowTuple (IntrinsicInst * II, Value * Result, Constant * Overflow)

    Creates a result tuple for an overflow intrinsic

    with a given

    and a constant

    value.

    Defined at line 928 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • GlobalVariable * OptimizeGlobalAddressOfAllocation (GlobalVariable * GV, CallInst * CI, uint64_t AllocSize, Constant * InitVal, const DataLayout & DL, TargetLibraryInfo * TLI)

    This function takes the specified global variable, and transforms the

    program as if it always contained the result of the specified malloc.

    Because it is always the result of the specified malloc, there is no reason

    to actually DO the malloc. Instead, turn the malloc into a global, and any

    loads of GV as uses of the new global.

    Defined at line 928 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • basic_string formatOperandComment (basic_string Comment)

    Defined at line 929 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • bool shouldConvertOrWithNoCommonBitsToAdd (Instruction * Or)

    Return true if it may be profitable to convert this (X|Y) into (X+Y).

    Defined at line 929 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • unsigned int getPointerOperandIndex (Instruction * I)

    Defined at line 930 of file llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp

  • LLVMValueRef LLVMGetConstantPtrAuthDiscriminator (LLVMValueRef PtrAuth)

    Get the discriminator value for the associated ConstantPtrAuth constant.

    Defined at line 931 of file llvm/lib/IR/Core.cpp

  • void operator delete[] (void * Ptr, llvm::MCContext & C)

    Placement delete[] companion to the new[] above.

    This operator is just a companion to the new[] above. There is no way of

    invoking it directly; see the new[] operator for more details. This operator

    is called implicitly by the compiler if a placement new[] expression using

    the MCContext throws in the object constructor.

    Defined at line 932 of file llvm/include/llvm/MC/MCContext.h

  • bool processUDivOrURem (BinaryOperator * Instr, LazyValueInfo * LVI)

    Defined at line 932 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void createMemSetLoop (Instruction * InsertBefore, Value * DstAddr, Value * CopyLen, Value * SetValue, Align DstAlign, bool IsVolatile)

    Defined at line 932 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • bool isInstructionPotentiallySymmetric (Instruction * I)

    Defined at line 933 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • void generateDirectiveClauseSets (const DirectiveLanguage & DirLang, Frontend FE, raw_ostream & OS)

    Generate an enum set for the 4 kinds of clauses linked to a directive.

    Defined at line 933 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • Expected writeDWARFExpression (raw_ostream & OS, const DWARFYAML::DWARFOperation & Operation, uint8_t AddrSize, bool IsLittleEndian)

    Defined at line 933 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • void pdb2Yaml (StringRef Path)

    Defined at line 934 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • bool hasAddressTakenAndUsed (BasicBlock * BB)

    Defined at line 934 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • template <class ELFT>
    Expected readBBAddrMapImpl (const ELFFile<ELFT> & EF, optional TextSectionIndex, std::vector<PGOAnalysisMap> * PGOAnalyses)

    Defined at line 934 of file llvm/lib/Object/ELFObjectFile.cpp

  • LLVMValueRef LLVMGetConstantPtrAuthAddrDiscriminator (LLVMValueRef PtrAuth)

    Get the address discriminator value for the associated ConstantPtrAuth

    constant.

    Defined at line 935 of file llvm/lib/IR/Core.cpp

  • bool isAddFoldable (const SCEV * Base, ConstantInt * Index, Value * Stride, TargetTransformInfo * TTI)

    Returns whether (Base + Index * Stride) can be folded to an addressing mode.

    Defined at line 935 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp

  • Immediate ExtractImmediate (const SCEV *& S, ScalarEvolution & SE)

    If S involves the addition of a constant integer value, return that integer

    value, and mutate S to point to a new SCEV with that value excluded.

    Defined at line 935 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool valuesOverlap (std::vector<ValueEqualityComparisonCase> & C1, std::vector<ValueEqualityComparisonCase> & C2)

    Return true if there are any keys in C1 that exist in C2 as well.

    Defined at line 935 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void printMIOperand (raw_ostream & OS, MFPrintState & State, const MachineInstr & MI, unsigned int OpIdx, const TargetRegisterInfo * TRI, const TargetInstrInfo * TII, bool ShouldPrintRegisterTies, SmallBitVector & PrintedTypes, const MachineRegisterInfo & MRI, bool PrintDef)

    Defined at line 935 of file llvm/lib/CodeGen/MIRPrinter.cpp

  • Expected TestCodeGenerator (BugDriver & BD, unique_ptr Test, unique_ptr Safe)

    This is the predicate function used to check to see if the "Test" portion of

    the program is miscompiled by the code generator under test. If so, return

    true. In any case, both module arguments are deleted.

    Defined at line 935 of file llvm/tools/bugpoint/Miscompilation.cpp

  • TypeIndex getStringIdTypeIdx (GlobalTypeTableBuilder & TypeTable, StringRef S)

    Defined at line 937 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void PropagateCallSiteMetadata (CallBase & CB, ilist_iterator FStart, ilist_iterator FEnd)

    When inlining a call site that has !llvm.mem.parallel_loop_access,

    !llvm.access.group, !alias.scope or !noalias metadata, that metadata should

    be propagated to all memory-accessing cloned instructions.

    Defined at line 937 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • XXH128_hash_t XXH3_len_129to240_128b (const uint8_t * input, size_t len, const uint8_t * secret, size_t secretSize, uint64_t seed)

    Defined at line 938 of file llvm/lib/Support/xxhash.cpp

  • PHINode * FindLoopCounter (Loop * L, BasicBlock * ExitingBB, const SCEV * BECount, ScalarEvolution * SE, DominatorTree * DT)

    Search the loop header for a loop counter (anadd rec w/step of one)

    suitable for use by LFTR. If multiple counters are available, select the

    "best" one based profitable heuristics.

    BECount may be an i8* pointer type. The pointer difference is already

    valid count without scaling the address stride, so it remains a pointer

    expression as far as SCEV is concerned.

    Defined at line 939 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • bool isWindowsSpecialChar (char C)

    Windows treats whitespace, double quotes, and backslashes specially, except

    when parsing the first token of a full command line, in which case

    backslashes are not special.

    Defined at line 940 of file llvm/lib/Support/CommandLine.cpp

  • void setLiveRoot (ModuleSummaryIndex & Index, StringRef Name)

    Set LiveRoot flag on entries matching the given value name.

    Defined at line 940 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • bool mergePartStores (SmallVectorImpl<PartStore> & Parts, const DataLayout & DL, TargetTransformInfo & TTI)

    Defined at line 940 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • bool hasLiveThroughUse (const MachineInstr * MI, Register Reg)

    ===----------------------------------------------------------------------===//

    Register mask functions

    ===----------------------------------------------------------------------===//

    Check whether use of reg in MI is live-through. Live-through means that

    the value is alive on exit from Machine instruction. The example of such

    use is a deopt value in statepoint instruction.

    Defined at line 941 of file llvm/lib/CodeGen/LiveIntervals.cpp

  • int getARM64OffsetInProlog (const std::vector<WinEH::Instruction> & Prolog, const std::vector<WinEH::Instruction> & Epilog)

    Check if an epilog exists as a subset of the end of a prolog (backwards).

    Defined at line 941 of file llvm/lib/MC/MCWin64EH.cpp

  • LLVMErrorRef LLVMOrcDisposeLLJIT (LLVMOrcLLJITRef J)

    Dispose of an LLJIT instance.

    Defined at line 942 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMPointerTypeInContext (LLVMContextRef C, unsigned int AddressSpace)

    Create an opaque pointer type in a context.

    Defined at line 941 of file llvm/lib/IR/Core.cpp

  • size_t findFirstNonGlobal (ArrayRef Symbols)

    Defined at line 942 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • AttributeList getReturnAttrs (FastISel::CallLoweringInfo & CLI)

    Returns an AttributeList representing the attributes applied to the return

    value of the given call.

    Defined at line 942 of file llvm/lib/CodeGen/SelectionDAG/FastISel.cpp

  • Error checkLinkerOptCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex)

    Defined at line 942 of file llvm/lib/Object/MachOObjectFile.cpp

  • Expected loadTestingFormat (StringRef Data, StringRef CompilationDir)

    Defined at line 942 of file llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  • bool isWindowsSpecialCharInCommandName (char C)

    Defined at line 943 of file llvm/lib/Support/CommandLine.cpp

  • size_t TypeSizeToSizeIndex (uint32_t TypeSize)

    Defined at line 943 of file llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp

  • void dumpRaw (StringRef Path)

    Defined at line 943 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • void TestGsymCreatorEncodeError (endianness ByteOrder, const GsymCreator & GC, basic_string ExpectedErrorMsg)

    Defined at line 943 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • Value * foldIsPowerOf2OrZero (ICmpInst * Cmp0, ICmpInst * Cmp1, bool IsAnd, InstCombiner::BuilderTy & Builder, InstCombinerImpl & IC)

    Fold (icmp eq ctpop(X) 1) | (icmp eq X 0) into (icmp ult ctpop(X) 2) and

    fold (icmp ne ctpop(X) 1)

    &

    (icmp ne X 0) into (icmp ugt ctpop(X) 1).

    Also used for logical and/or, must be poison safe if range attributes are

    dropped.

    Defined at line 943 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • Instruction * shrinkInsertElt (CastInst & Trunc, InstCombiner::BuilderTy & Builder)

    Try to narrow the width of an insert element. This could be generalized for

    any vector constant, but we limit the transform to insertion into undef to

    avoid potential backend problems from unsupported insertion widths. This

    could also be extended to handle the case of inserting a scalar constant

    into a vector variable.

    Defined at line 943 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • void dumpLoclistsSection (raw_ostream & OS, DIDumpOptions DumpOpts, DWARFDataExtractor Data, const DWARFObject & Obj, optional DumpOffset)

    Defined at line 946 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • bool processSRem (BinaryOperator * SDI, const ConstantRange & LCR, const ConstantRange & RCR, LazyValueInfo * LVI)

    Defined at line 946 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void scalarizeMaskedVectorHistogram (const DataLayout & DL, CallInst * CI, DomTreeUpdater * DTU, bool & ModifiedDT)

    Defined at line 946 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • LLVMOrcExecutionSessionRef LLVMOrcLLJITGetExecutionSession (LLVMOrcLLJITRef J)

    Get a reference to the ExecutionSession for this LLJIT instance.

    The ExecutionSession is owned by the LLJIT instance. The client is not

    responsible for managing its memory.

    Defined at line 947 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • basic_string maybeDemangle (StringRef Name)

    Defined at line 947 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • const MachineInstr * getCallInstr (const MachineInstr * MI)

    Return the call machine instruction or find a call within bundle.

    Defined at line 947 of file llvm/lib/CodeGen/MachineFunction.cpp

  • void emitNonLazySymbolPointer (MCStreamer & OutStreamer, MCSymbol * StubLabel, int & MCSym)

    Defined at line 947 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • bool IsIncrementNSW (ScalarEvolution & SE, const SCEVAddRecExpr * AR)

    Defined at line 948 of file llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp

  • void computeExcessPressureDelta (ArrayRef<unsigned int> OldPressureVec, ArrayRef<unsigned int> NewPressureVec, RegPressureDelta & Delta, const RegisterClassInfo * RCI, ArrayRef<unsigned int> LiveThruPressureVec)

    Find the max change in excess pressure across all sets.

    Defined at line 948 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • void tokenizeWindowsCommandLineImpl (StringRef Src, StringSaver & Saver, function_ref AddToken, bool AlwaysCopy, function_ref MarkEOL, bool InitialCommandName)

    Windows tokenization implementation. The implementation is designed to be

    inlined and specialized for the two user entry points.

    Defined at line 949 of file llvm/lib/Support/CommandLine.cpp

  • bool isEqualOrWorse (const Attribute & New, const Attribute & Old)

    Return true if

    is equal or worse than

    Defined at line 950 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • void dumpBytes (StringRef Path)

    Defined at line 950 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • LLVMOrcJITDylibRef LLVMOrcLLJITGetMainJITDylib (LLVMOrcLLJITRef J)

    Return a reference to the Main JITDylib.

    The JITDylib is owned by the LLJIT instance. The client is not responsible

    for managing its memory.

    Defined at line 951 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void EmitAndPrintRemark (OptimizationRemarkEmitter * ORE, DiagnosticInfoOptimizationBase & Rem)

    Defined at line 951 of file llvm/lib/CodeGen/SelectOptimize.cpp

  • void initializeMergeICmpsLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 951 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp

  • void gatherIncomingValuesToPhi (PHINode * PN, int & IncomingValues)

    Create a map from block to value for the operands of a

    given phi.

    Create a map from block to value for each non-undef value flowing

    into

    Parameters

    PN The phi we are collecting the map for.
    IncomingValues [out] The map from block to value for this phi.

    Defined at line 951 of file llvm/lib/Transforms/Utils/Local.cpp

  • void writeInstrProfile (StringRef OutputFilename, ProfileFormat OutputFormat, InstrProfWriter & Writer)

    Defined at line 951 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • Value * expandFromPrimitiveShadowRecursive (Value * Shadow, SmallVector<unsigned int, 4> & Indices, Type * SubShadowTy, Value * PrimitiveShadow, int & IRB)

    Defined at line 952 of file llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp

  • BinaryOperator * convertOrWithNoCommonBitsToAdd (Instruction * Or)

    If we have (X|Y), and iff X and Y have no common bits set,

    transform this into (X+Y) to allow arithmetics reassociation.

    Defined at line 953 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • MyFlags operator| (MyFlags a, MyFlags b)

    Defined at line 954 of file llvm/unittests/Support/YAMLIOTest.cpp

  • const char * LLVMOrcLLJITGetTripleString (LLVMOrcLLJITRef J)

    Return the target triple for this LLJIT instance. This string is owned by

    the LLJIT instance and should not be freed by the client.

    Defined at line 955 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void InitializeModuleAndManagers ()

    ===----------------------------------------------------------------------===//

    Top-Level parsing and JIT Driver

    ===----------------------------------------------------------------------===//

    Defined at line 955 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • VPValue * optimizeEarlyExitInductionUser (VPlan & Plan, VPTypeAnalysis & TypeInfo, VPBlockBase * PredVPBB, VPValue * Op, PredicatedScalarEvolution & PSE)

    Attempts to optimize the induction variable exit values for users in the

    early exit block.

    Defined at line 956 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void dumpConstraint (ArrayRef C, const int & Value2Index)

    Defined at line 957 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • Predicate areGlobalsPotentiallyEqual (const GlobalValue * GV1, const GlobalValue * GV2)

    Defined at line 957 of file llvm/lib/IR/ConstantFold.cpp

  • int InstProfClzll (unsigned long long X)

    Defined at line 958 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • char LLVMOrcLLJITGetGlobalPrefix (LLVMOrcLLJITRef J)

    Returns the global prefix character according to the LLJIT's DataLayout.

    Defined at line 959 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMTypeRef LLVMVoidType ()

    These are similar to the above functions except they operate on the

    global context.

    Defined at line 958 of file llvm/lib/IR/Core.cpp

  • int InstProfPopcountll (unsigned long long X)

    Defined at line 960 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • bool addIfNotExistent (LLVMContext & Ctx, const Attribute & Attr, AttributeSet AttrSet, bool ForceReplace, AttrBuilder & AB)

    Return true if the information provided by

    was added to the

    attribute set

    This is only the case if it was not already

    present in

    Defined at line 960 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • LLVMTypeRef LLVMLabelType ()

    Defined at line 961 of file llvm/lib/IR/Core.cpp

  • basic_string getBlockName (const BasicBlock * B)

    Defined at line 961 of file llvm/lib/Transforms/Scalar/NewGVN.cpp

  • ObjectFormatType getDefaultFormat (const Triple & T)

    Defined at line 961 of file llvm/lib/TargetParser/Triple.cpp

  • template <typename MatchT>
    VPRecipeBase * findUserOf (VPValue * V, const MatchT & P)

    If

    is used by a recipe matching pattern

    return it. Otherwise

    return nullptr;

    Defined at line 962 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • bool IsIncrementNUW (ScalarEvolution & SE, const SCEVAddRecExpr * AR)

    Defined at line 962 of file llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp

  • LLVMOrcSymbolStringPoolEntryRef LLVMOrcLLJITMangleAndIntern (LLVMOrcLLJITRef J, const char * UnmangledName)

    Mangles the given string according to the LLJIT instance's DataLayout, then

    interns the result in the SymbolStringPool and returns a reference to the

    pool entry. Clients should call LLVMOrcReleaseSymbolStringPoolEntry to

    decrement the ref-count on the pool entry once they are finished with this

    value.

    Defined at line 963 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void p_b_eclass (struct parse * , cset * )

    - p_b_eclass - parse an equivalence-class name and deal with it

    This implementation is incomplete. xxx

    Defined at line 957 of file llvm/lib/Support/regcomp.c

  • LLVMTypeRef LLVMVoidTypeInContext (LLVMContextRef C)

    Create a void type in a context.

    Defined at line 945 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMLabelTypeInContext (LLVMContextRef C)

    Create a label type in a context.

    Defined at line 948 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMTokenTypeInContext (LLVMContextRef C)

    Create a token type in a context.

    Defined at line 951 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMMetadataTypeInContext (LLVMContextRef C)

    Create a metadata type in a context.

    Defined at line 954 of file llvm/lib/IR/Core.cpp

  • StringRef sanitizeFunctionName (StringRef funcName)

    Defined at line 963 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • void getPhiRegs (MachineInstr & Phi, MachineBasicBlock * Loop, Register & InitVal, Register & LoopVal)

    Return the register values for the operands of a Phi instruction.

    This function assume the instruction is a Phi.

    Defined at line 963 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • void createCandidatesFromSuffixTree (const IRInstructionMapper & Mapper, std::vector<IRInstructionData *> & InstrList, std::vector<unsigned int> & IntegerMapping, SuffixTree::RepeatedSubstring & RS, std::vector<IRSimilarityCandidate> & CandsForRepSubstring)

    From a repeated subsequence, find all the different instances of the

    subsequence from the

    and create an IRSimilarityCandidate from

    the IRInstructionData in subsequence.

    Parameters

    Mapper [in] - The instruction mapper for basic correctness checks.
    InstrList [in] - The vector that holds the instruction data.
    IntegerMapping [in] - The vector that holds the mapped integers.
    CandsForRepSubstring [out] - The vector to store the generated IRSimilarityCandidates.

    Defined at line 963 of file llvm/lib/Analysis/IRSimilarityIdentifier.cpp

  • int checkARM64PackedEpilog (MCStreamer & streamer, WinEH::FrameInfo * info, WinEH::FrameInfo::Segment * Seg, int PrologCodeBytes)

    Defined at line 963 of file llvm/lib/MC/MCWin64EH.cpp

  • void EmitGenDwarfInfo (MCStreamer * MCOS, const MCSymbol * AbbrevSectionSymbol, const MCSymbol * LineSectionSymbol, const MCSymbol * RangesSymbol)

    When generating dwarf for assembly source files this emits the data for

    .debug_info section which contains three parts. The header, the compile_unit

    DIE and a list of label DIEs.

    Defined at line 963 of file llvm/lib/MC/MCDwarf.cpp

  • Libcall getConvRTLibDesc (unsigned int Opcode, Type * ToType, Type * FromType)

    Defined at line 964 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • template <class ELFT>
    void setAddend (Elf_Rel_Impl<ELFT, false> & , uint64_t )

    Defined at line 965 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • void generateDirectiveClauseMap (const DirectiveLanguage & DirLang, Frontend FE, raw_ostream & OS)

    Generate a map of directive (key) with DirectiveClauses struct as values.

    The struct holds the 4 sets of enumeration for the 4 kinds of clauses

    allowances (allowed, allowed once, allowed exclusive and required).

    Defined at line 965 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • basic_string formatFrameType (frame_type FT)

    Defined at line 966 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • StringRef getSrcChildName (const TreePatternNode & SrcChild, const Record *& PhysReg)

    Get the name to use for a pattern operand. For an anonymous physical register

    input, this should use the register name.

    Defined at line 966 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • GlobalValue * ExtractSymbol (const SCEV *& S, ScalarEvolution & SE)

    If S involves the addition of a GlobalValue address, return that symbol, and

    mutate S to point to a new SCEV with that value excluded.

    Defined at line 966 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • Expected writeListEntry (raw_ostream & OS, const DWARFYAML::RnglistEntry & Entry, uint8_t AddrSize, bool IsLittleEndian)

    Defined at line 966 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • Value * canonicalizeSaturatedSubtract (const ICmpInst * ICI, const Value * TrueVal, const Value * FalseVal, InstCombiner::BuilderTy & Builder)

    Transform patterns such as (a > b) ? a - b : 0 into usub.sat(a, b).

    There are 8 commuted/swapped variants of this pattern.

    Defined at line 966 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • LLVMErrorRef LLVMOrcLLJITAddObjectFile (LLVMOrcLLJITRef J, LLVMOrcJITDylibRef JD, LLVMMemoryBufferRef ObjBuffer)

    Add a buffer representing an object file to the given JITDylib in the given

    LLJIT instance. This operation transfers ownership of the buffer to the

    LLJIT instance. The buffer should not be disposed of or referenced once this

    function returns.

    Resources associated with the given object will be tracked by the given

    JITDylib's default resource tracker.

    Defined at line 969 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • char p_b_symbol (struct parse * )

    Defined at line 967 of file llvm/lib/Support/regcomp.c

  • LLVMTypeRef LLVMTargetExtTypeInContext (LLVMContextRef C, const char * Name, LLVMTypeRef * TypeParams, unsigned int TypeParamCount, unsigned int * IntParams, unsigned int IntParamCount)

    Create a target extension type in LLVM context.

    Defined at line 965 of file llvm/lib/IR/Core.cpp

  • void replaceUndefValuesInPhi (PHINode * PN, const int & IncomingValues)

    Replace the incoming undef values to a phi with the values

    from a block-to-value map.

    Parameters

    PN The phi we are replacing the undefs in.
    IncomingValues A map from block to value.

    Defined at line 967 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool IsValueFullyAvailableInBlock (BasicBlock * BB, int & FullyAvailableBlocks)

    Return true if we can prove that the value

    we're analyzing is fully available in the specified block. As we go, keep

    track of which blocks we know are fully alive in FullyAvailableBlocks. This

    map is actually a tri-state map with the following values:

    0) we know the block *is not* fully available.

    1) we know the block *is* fully available.

    2) we do not know whether the block is fully available or not, but we are

    currently speculating that it will be.

    Defined at line 967 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • template <class ELFT>
    void setAddend (Elf_Rel_Impl<ELFT, true> & Rela, uint64_t Addend)

    Defined at line 968 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • template <unsigned Opcode>
    VPInstruction * findUserOf (VPValue * V)

    If

    is used by a VPInstruction with

    return it. Otherwise

    return nullptr.

    Defined at line 969 of file llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp

  • uint64_t InstrProfGetRangeRepValue (uint64_t Value)

    Map an (observed) memop size value to the representative value of its range.

    For example, 5 -> 5, 22 -> 17, 99 -> 65, 256 -> 256, 1001 -> 513.

    Defined at line 969 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • char getSymbolNMTypeChar (XCOFFObjectFile & Obj, symbol_iterator I)

    Defined at line 969 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • optional getStrideFromAddRec (const SCEVAddRecExpr * AR, const Loop * Lp, Type * AccessTy, Value * Ptr, PredicatedScalarEvolution & PSE)

    Try to compute a constant stride for

    Used by getPtrStride and

    isNoWrap.

    Defined at line 969 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • void emitNonLazyStubs (MachineModuleInfo * MMI, MCStreamer & OutStreamer)

    Defined at line 970 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • bool ShouldBreakUpSubtract (Instruction * Sub)

    Return true if we should break up this subtract of X-Y into (X + -Y).

    Defined at line 970 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • ConstantAsMetadata * extractConstantMetadata (Metadata * ExtraData)

    Helper function to extract ConstantAsMetadata from ExtraData,

    handling extra data MDTuple unwrapping if needed.

    Defined at line 971 of file llvm/lib/IR/DebugInfoMetadata.cpp

  • void computeKnownBitsFromICmpCond (const Value * V, ICmpInst * Cmp, KnownBits & Known, const SimplifyQuery & SQ, bool Invert)

    Defined at line 971 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isICmpTrue (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given a predicate and two operands, return true if the comparison is true.

    This is a helper for div/rem simplification where we return some other value

    when we can prove a relationship between the operands.

    Defined at line 972 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isOperandOf (const SUnit * SU, SDNode * N)

    Defined at line 972 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • template <typename T>
    bool canOverlap (MemTransferBase<T> * Memcpy, ScalarEvolution * SE)

    Defined at line 972 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp

  • void PrintRelocations (const MachOObjectFile * O, const bool verbose)

    Defined at line 972 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void mergeInstrProfile (const WeightedFileVector & Inputs, SymbolRemapper * Remapper, int MaxDbgCorrelationWarnings, StringRef ProfiledBinary)

    Defined at line 972 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void initializeTailCallElimPassOnce (PassRegistry & Registry)

    Defined at line 973 of file llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp

  • void emitSignedInt64 (SmallVectorImpl<uint64_t> & Vals, uint64_t V)

    Defined at line 973 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • template <class RelRange, class T>
    void writeRel (const RelRange & Relocations, T * Buf, bool IsMips64EL)

    Defined at line 973 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • template <typename ListT>
    void addToAccessGroupList (ListT & List, MDNode * AccGroups)

    Add all access groups in

    to

    Defined at line 973 of file llvm/lib/Analysis/VectorUtils.cpp

  • BranchInst * FindWidenableTerminatorAboveLoop (Loop * L, LoopInfo & LI)

    If we can (cheaply) find a widenable branch which controls entry into the

    loop, return it.

    Defined at line 973 of file llvm/lib/Transforms/Scalar/LoopPredication.cpp

  • bool runImpl (Function & F, LoopInfo * LI, DominatorTree * DT, ScalarEvolution * SE, OptimizationRemarkEmitter * ORE, LoopAccessInfoManager & LAIs)

    Defined at line 973 of file llvm/lib/Transforms/Scalar/LoopDistribute.cpp

  • Value * foldIsPowerOf2 (ICmpInst * Cmp0, ICmpInst * Cmp1, bool JoinedByAnd, InstCombiner::BuilderTy & Builder, InstCombinerImpl & IC)

    Reduce a pair of compares that check if a value has exactly 1 bit set.

    Also used for logical and/or, must be poison safe if range attributes are

    dropped.

    Defined at line 973 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool foldConsecutiveStores (BasicBlock & BB, const DataLayout & DL, TargetTransformInfo & TTI, AliasAnalysis & AA)

    Defined at line 973 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • int buildIndexMap (const llvm::StringTable & StandardNames)

    Defined at line 974 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • bool mayLoopAccessLocation (Value * Ptr, ModRefInfo Access, Loop * L, const SCEV * BECount, const SCEV * StoreSizeSCEV, AliasAnalysis & AA, SmallPtrSetImpl<Instruction *> & IgnoredInsts)

    mayLoopAccessLocation - Return true if the specified loop might access the

    specified pointer location, which is a loop-strided access. The 'Access'

    argument specifies what the verboten forms of access are (read or write).

    Defined at line 974 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • LLVMErrorRef LLVMOrcLLJITAddObjectFileWithRT (LLVMOrcLLJITRef J, LLVMOrcResourceTrackerRef RT, LLVMMemoryBufferRef ObjBuffer)

    Add a buffer representing an object file to the given ResourceTracker's

    JITDylib in the given LLJIT instance. This operation transfers ownership of

    the buffer to the LLJIT instance. The buffer should not be disposed of or

    referenced once this function returns.

    Resources associated with the given object will be tracked by ResourceTracker

    RT.

    Defined at line 975 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • bool inputDenormalIsIEEE (const Function & F, const Type * Ty)

    Defined at line 976 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • template <class... Ts>
    DISubprogram * getSubprogram (bool IsDistinct, Ts &&... Args)

    Defined at line 978 of file llvm/lib/IR/DIBuilder.cpp

  • void dumpPubTableSection (raw_ostream & OS, DIDumpOptions DumpOpts, DWARFDataExtractor Data, bool GnuStyle)

    Defined at line 978 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • void PropagateOperandBundles (ilist_iterator InlinedBB, Instruction * CallSiteEHPad)

    Bundle operands of the inlined function must be added to inlined call sites.

    Defined at line 978 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • Register getLoopPhiReg (const MachineInstr & Phi, const MachineBasicBlock * LoopBB)

    Return the Phi register value that comes the loop block.

    Defined at line 979 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • bool canCombine (MachineBasicBlock & MBB, MachineOperand & MO, unsigned int CombineOpc)

    Utility routine that checks if

    Parameters

    MO is defined by an
    CombineOpc instruction in the basic block
    MBB. If
    CombineOpc is not provided, the OpCode check will be skipped.

    Defined at line 979 of file llvm/lib/CodeGen/TargetInstrInfo.cpp

  • void emitWideAPInt (SmallVectorImpl<uint64_t> & Vals, const APInt & A)

    Defined at line 980 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool inputDenormalIsDAZ (const Function & F, const Type * Ty)

    Defined at line 981 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • template <class T, class InfoT>
    T * uniquifyImpl (T * N, DenseSet<T *, InfoT> & Store)

    Defined at line 981 of file llvm/lib/IR/Metadata.cpp

  • bool isFuncOrderCorrect (const Function * F, const Function * G)

    Ordering for functions that are equal under FunctionComparator

    Defined at line 981 of file llvm/lib/Transforms/IPO/MergeFunctions.cpp

  • bool isDivZero (Value * X, Value * Y, const SimplifyQuery & Q, unsigned int MaxRecurse, bool IsSigned)

    Return true if we can simplify X / Y to 0. Remainder can adapt that answer

    to simplify X % Y to X.

    Defined at line 981 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • TargetTypeInfo getTargetTypeInfo (const TargetExtType * Ty)

    Defined at line 981 of file llvm/lib/IR/Type.cpp

  • Error checkSubCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char * CmdName, size_t SizeOfCmd, const char * CmdStructName, uint32_t PathOffset, const char * PathFieldName)

    Defined at line 982 of file llvm/lib/Object/MachOObjectFile.cpp

  • void initializeSafeStackLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 983 of file llvm/lib/CodeGen/SafeStack.cpp

  • LLVMErrorRef LLVMOrcLLJITAddLLVMIRModule (LLVMOrcLLJITRef J, LLVMOrcJITDylibRef JD, LLVMOrcThreadSafeModuleRef TSM)

    Add an IR module to the given JITDylib in the given LLJIT instance. This

    operation transfers ownership of the TSM argument to the LLJIT instance.

    The TSM argument should not be disposed of or referenced once this

    function returns.

    Resources associated with the given Module will be tracked by the given

    JITDylib's default resource tracker.

    Defined at line 983 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • XXH128_hash_t XXH3_hashLong_128b (const uint8_t * input, size_t len, const uint8_t * secret, size_t secretSize)

    Defined at line 983 of file llvm/lib/Support/xxhash.cpp

  • bool setShiftFlags (BinaryOperator & I, const SimplifyQuery & Q)

    Try to set nuw/nsw flags on shl or exact flag on lshr/ashr using knownbits.

    Defined at line 983 of file llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  • bool pushDepHeight (const DataDep & Dep, const MachineInstr & UseMI, unsigned int UseHeight, int & Heights, const TargetSchedModel & SchedModel, const TargetInstrInfo * TII)

    Push the height of DefMI upwards if required to match UseMI.

    Return true if this is the first time DefMI was seen.

    Defined at line 984 of file llvm/lib/CodeGen/MachineTraceMetrics.cpp

  • char p_b_coll_elem (struct parse * , int )

    Defined at line 984 of file llvm/lib/Support/regcomp.c

  • void AddNodeIDNode (FoldingSetNodeID & ID, const SDNode * N)

    AddNodeIDNode - Generic routine for adding a nodes info to the NodeID

    data.

    Defined at line 985 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void zeroExtendToMatch (APInt & LHS, APInt & RHS, unsigned int Offset)

    APInts must be the same size for most operations, this helper

    function zero extends the shorter of the pair so that they match.

    We provide an Offset so that we can create bitwidths that won't overflow.

    Defined at line 986 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • LegalizeResult conversionLibcall (MachineInstr & MI, MachineIRBuilder & MIRBuilder, Type * ToType, Type * FromType, LostDebugLocObserver & LocObserver, const TargetLowering & TLI, bool IsSigned)

    Defined at line 986 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • void SortNonLocalDepInfoCache (MemoryDependenceResults::NonLocalDepInfo & Cache, unsigned int NumSortedEntries)

    Sort the NonLocalDepInfo cache, given a certain number of elements in the

    array that are already properly ordered.

    This is optimized for the case when only a few entries are added.

    Defined at line 987 of file llvm/lib/Analysis/MemoryDependenceAnalysis.cpp

  • void computeMaxPressureDelta (ArrayRef<unsigned int> OldMaxPressureVec, ArrayRef<unsigned int> NewMaxPressureVec, ArrayRef<PressureChange> CriticalPSets, ArrayRef<unsigned int> MaxPressureLimit, RegPressureDelta & Delta)

    Find the max change in max pressure that either surpasses a critical PSet

    limit or exceeds the current MaxPressureLimit.

    FIXME: comparing each element of the old and new MaxPressure vectors here is

    silly. It's done now to demonstrate the concept but will go away with a

    RegPressureTracker API change to work with pressure differences.

    Defined at line 987 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • Predicate evaluateICmpRelation (Constant * V1, Constant * V2)

    This function determines if there is anything we can decide about the two

    constants provided. This doesn't need to handle simple things like integer

    comparisons, but should instead handle ConstantExprs and GlobalValues.

    If we can determine that the two constants have a particular relation to

    each other, we should return the corresponding ICmp predicate, otherwise

    return ICmpInst::BAD_ICMP_PREDICATE.

    Defined at line 987 of file llvm/lib/IR/ConstantFold.cpp

  • unsigned int InstrProfIsSingleValRange (uint64_t Value)

    Return true if the range that an (observed) memop size value belongs to has

    only a single value in the range. For example, 0 -> true, 8 -> true, 10 ->

    false, 64 -> true, 100 -> false, 513 -> false.

    Defined at line 988 of file llvm/include/llvm/ProfileData/InstrProfData.inc

  • bool isSuccOrder (SUnit * SUa, SUnit * SUb)

    Return true if SUb can be reached from SUa following the chain edges.

    Defined at line 988 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • bool isSDKVersionToken (const AsmToken & Tok)

    Defined at line 989 of file llvm/lib/MC/MCParser/DarwinAsmParser.cpp

  • Predicate fpclassTestIsFCmp0 (FPClassTest Mask, const Function & F, Type * Ty)

    Defined at line 989 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • LLVMErrorRef LLVMOrcLLJITAddLLVMIRModuleWithRT (LLVMOrcLLJITRef J, LLVMOrcResourceTrackerRef JD, LLVMOrcThreadSafeModuleRef TSM)

    Add an IR module to the given ResourceTracker's JITDylib in the given LLJIT

    instance. This operation transfers ownership of the TSM argument to the LLJIT

    instance. The TSM argument should not be disposed of or referenced once this

    function returns.

    Resources associated with the given Module will be tracked by ResourceTracker

    RT.

    Defined at line 990 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • template <class ELFT>
    Expected readDynsymVersionsImpl (const ELFFile<ELFT> & EF, iterator_range Symbols)

    Defined at line 990 of file llvm/lib/Object/ELFObjectFile.cpp

  • void emitConstantRange (SmallVectorImpl<uint64_t> & Record, const ConstantRange & CR, bool EmitBitWidth)

    Defined at line 991 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool isAddressUse (const TargetTransformInfo & TTI, Instruction * Inst, Value * OperandVal)

    Returns true if the specified instruction is using the specified value as an

    address.

    Defined at line 992 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool mayLoadFromGOTOrConstantPool (MachineInstr & MI)

    Return true if this machine instruction loads from global offset table or

    constant pool.

    Defined at line 993 of file llvm/lib/CodeGen/MachineLICM.cpp

  • void computeKnownBitsFromCond (const Value * V, Value * Cond, KnownBits & Known, const SimplifyQuery & SQ, bool Invert, unsigned int Depth)

    Defined at line 993 of file llvm/lib/Analysis/ValueTracking.cpp

  • std::time_t getTime ()

    Defined at line 994 of file llvm/lib/MC/WinCOFFObjectWriter.cpp

  • BasicBlock * SplitBlockImpl (BasicBlock * Old, ilist_iterator_w_bits SplitPt, DomTreeUpdater * DTU, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)

    Defined at line 996 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool printFPCLASSComments (const MCInst * MI, raw_ostream & OS, const MCInstrInfo & MCII)

    Defined at line 998 of file llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp

  • Instruction * replaceGEPIdxWithZero (InstCombinerImpl & IC, Value * Ptr, Instruction & MemI)

    If we're indexing into an object with a variable index for the memory

    access, but the object has only one element, we can assume that the index

    will always be zero. If we replace the GEP, return it.

    Defined at line 999 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • bool usesMSVCFloatingPoint (const Triple & TT, const Module & M)

    True if this module is being built for windows/msvc, and uses floating

    point. This is used to emit an undefined reference to _fltused. This is

    needed in Windows kernel or driver contexts to find and prevent code from

    modifying non-GPR registers.

    TODO: It would be better if this was computed from MIR by looking for

    selected floating-point instructions.

    Defined at line 1000 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • BinaryOperator * BreakUpSubtract (Instruction * Sub, ReassociatePass::OrderedSet & ToRedo)

    If we have (X-Y), and if either X is an add, or if this is only used by an

    add, transform this into (X+(0-Y)) to promote better reassociation.

    Defined at line 1000 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • void computeVirtualCallSiteTypeInfoMap (Module & M, ModuleAnalysisManager & MAM, VirtualCallSiteTypeInfoMap & VirtualCSInfo)

    For virtual calls in the module, collect per-callsite information which will

    be used to associate an ICP candidate with a vtable and a specific function

    in the vtable. With type intrinsics (llvm.type.test), we can find virtual

    calls in a compile-time efficient manner (by iterating its users) and more

    importantly use the compatible type later to figure out the function byte

    offset relative to the start of vtables.

    Defined at line 1000 of file llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp

  • bool doNotCSE (SDNode * N)

    doNotCSE - Return true if CSE should not be performed for this node.

    Defined at line 1001 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool PHIsEqualValue (PHINode * PN, Value *& NonPhiInVal, SmallPtrSetImpl<PHINode *> & ValueEqualPHIs)

    Return true if this phi node is always equal to NonPhiInVal.

    This happens with mutually cyclic phi nodes like:

    z = some value; x = phi (y, z); y = phi (x, z)

    Defined at line 1001 of file llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp

  • bool matchType (int ArgTy, const Type * Ty, unsigned int IntBits, unsigned int SizeTBits)

    Return true if ArgTy matches Ty.

    Defined at line 1001 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • basic_string stringOr (basic_string Str, basic_string IfEmpty)

    Defined at line 1002 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • std::pair<const GCResultInst *, const GCResultInst *> getGCResultLocality (const GCStatepointInst & S)

    Return two gc.results if present. First result is a block local

    gc.result, second result is a non-block local gc.result. Corresponding

    entry will be nullptr if not present.

    Defined at line 1002 of file llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp

  • Error handleMaybeNoDataFoundError (Error E)

    If E is a no_data_found error, returns success. Otherwise returns E.

    Defined at line 1003 of file llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  • const SCEV * getMinAnalyzeableBackedgeTakenCount (ScalarEvolution & SE, DominatorTree & DT, Loop * L)

    Return the minimum of all analyzeable exit counts. This is an upper bound

    on the actual exit count. If there are not at least two analyzeable exits,

    returns SCEVCouldNotCompute.

    Defined at line 1003 of file llvm/lib/Transforms/Scalar/LoopPredication.cpp

  • FunctionCallee getOrInsertValueProfilingCall (Module & M, const TargetLibraryInfo & TLI, ValueProfilingCallType CallType)

    Defined at line 1003 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • void addArgumentReturnedAttrs (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Deduce returned attributes for the SCC.

    Defined at line 1003 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void insertSpills (const FrameDataInfo & FrameData, coro::Shape & Shape)

    Replace all alloca and SSA values that are accessed across suspend points

    with GetElementPointer from coroutine frame + loads and stores. Create an

    AllocaSpillBB that will become the new entry block for the resume parts of

    the coroutine:

    %hdl = coro.begin(...)

    whatever

    becomes:

    %hdl = coro.begin(...)

    br label %AllocaSpillBB

    AllocaSpillBB:

    ; geps corresponding to allocas that were moved to coroutine frame

    br label PostSpill

    PostSpill:

    whatever

    Defined at line 1003 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • Value * getCopyOf (const Value * V)

    If V is a predicateinfo copy, get the thing it is a copy of.

    Defined at line 1004 of file llvm/lib/Transforms/Scalar/NewGVN.cpp

  • Libcall getStateLibraryFunctionFor (MachineInstr & MI, const TargetLowering & TLI)

    Defined at line 1004 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • char getSymbolNMTypeChar (COFFImportFile & Obj)

    Defined at line 1005 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool processSDiv (BinaryOperator * SDI, const ConstantRange & LCR, const ConstantRange & RCR, LazyValueInfo * LVI)

    See if LazyValueInfo's ability to exploit edge conditions or range

    information is sufficient to prove the signs of both operands of this SDiv.

    If this is the case, replace the SDiv with a UDiv. Even for local

    conditions, this can sometimes prove conditions instcombine can't by

    exploiting range information.

    Defined at line 1005 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void Compare (const GsymCreator & GC, const GsymReader & GR)

    Defined at line 1006 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • Error checkCombinedSummaryForTesting (ModuleSummaryIndex * Summary)

    Defined at line 1006 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • void dumpInjectedSources (LinePrinter & Printer, IPDBSession & Session)

    Defined at line 1006 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • void performWriteOperation (ArchiveOperation Operation, object::Archive * OldArchive, unique_ptr OldArchiveBuf, std::vector<NewArchiveMember> * NewMembersP)

    Defined at line 1006 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • bool tryARM64PackedUnwind (WinEH::FrameInfo * info, uint32_t FuncLength, int PackedEpilogOffset)

    Defined at line 1006 of file llvm/lib/MC/MCWin64EH.cpp

  • bool is_ns_hex_digit (const char C)

    Defined at line 1007 of file llvm/lib/Support/YAMLParser.cpp

  • void initializeExpandVariadicsPassOnce (PassRegistry & Registry)

    Defined at line 1007 of file llvm/lib/Transforms/IPO/ExpandVariadics.cpp

  • Value * foldSelectInst (SelectInst & SI)

    Defined at line 1007 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool CanRedirectPredsOfEmptyBBToSucc (BasicBlock * BB, BasicBlock * Succ, const SmallPtrSetImpl<BasicBlock *> & BBPreds, BasicBlock *& CommonPred)

    Only when they shares a single common predecessor, return true.

    Only handles cases when BB can't be merged while its predecessors can be

    redirected.

    Defined at line 1007 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool is_ns_word_char (const char C)

    Defined at line 1009 of file llvm/lib/Support/YAMLParser.cpp

  • Error checkThreadCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char * CmdName)

    Defined at line 1009 of file llvm/lib/Object/MachOObjectFile.cpp

  • unsigned int getTruncatedShiftCount (const MachineInstr & MI, unsigned int ShiftAmtOperandIdx)

    Check whether the shift count for a machine operand is non-zero.

    Defined at line 1010 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • LLVMErrorRef LLVMOrcCreateObjectLinkingLayerWithInProcessMemoryManager (LLVMOrcObjectLayerRef * Result, LLVMOrcExecutionSessionRef ES)

    Create a ObjectLinkingLayer instance using the standard JITLink

    InProcessMemoryManager for memory management.

    Defined at line 1022 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcObjectLayerRef LLVMOrcCreateRTDyldObjectLinkingLayerWithSectionMemoryManager (LLVMOrcExecutionSessionRef ES)

    Create a RTDyldObjectLinkingLayer instance using the standard

    SectionMemoryManager for memory management.

    Defined at line 1033 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMOrcObjectLayerRef LLVMOrcCreateRTDyldObjectLinkingLayerWithMCJITMemoryManagerLikeCallbacks (LLVMOrcExecutionSessionRef ES, void * CreateContextCtx, LLVMMemoryManagerCreateContextCallback CreateContext, LLVMMemoryManagerNotifyTerminatingCallback NotifyTerminating, LLVMMemoryManagerAllocateCodeSectionCallback AllocateCodeSection, LLVMMemoryManagerAllocateDataSectionCallback AllocateDataSection, LLVMMemoryManagerFinalizeMemoryCallback FinalizeMemory, LLVMMemoryManagerDestroyCallback Destroy)

    Create a RTDyldObjectLinkingLayer instance using MCJIT-memory-manager-like

    callbacks.

    This is intended to simplify transitions for existing MCJIT clients. The

    callbacks used are similar (but not identical) to the callbacks for

    LLVMCreateSimpleMCJITMemoryManager: Unlike MCJIT, RTDyldObjectLinkingLayer

    will create a new memory manager for each object linked by calling the given

    CreateContext callback. This allows for code removal by destroying each

    allocator individually. Every allocator will be destroyed (if it has not been

    already) at RTDyldObjectLinkingLayer destruction time, and the

    NotifyTerminating callback will be called to indicate that no further

    allocation contexts will be created.

    To implement MCJIT-like behavior clients can implement CreateContext,

    NotifyTerminating, and Destroy as:

    void *CreateContext(void *CtxCtx) { return CtxCtx; }

    void NotifyTerminating(void *CtxCtx) { MyOriginalDestroy(CtxCtx); }

    void Destroy(void *Ctx) { }

    This scheme simply reuses the CreateContextCtx pointer as the one-and-only

    allocation context.

    Defined at line 1043 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • llvm::ModulePass * createDebugifyModulePass (DebugifyMode Mode, StringRef NameOfWrappedPass, DebugInfoPerPass * DebugInfoBeforePass)

    Defined at line 1045 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • llvm::FunctionPass * createDebugifyFunctionPass (DebugifyMode Mode, StringRef NameOfWrappedPass, DebugInfoPerPass * DebugInfoBeforePass)

    Defined at line 1054 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • char othercase (int )

    Defined at line 1010 of file llvm/lib/Support/regcomp.c

  • LLVMErrorRef LLVMOrcLLJITLookup (LLVMOrcLLJITRef J, LLVMOrcExecutorAddress * Result, const char * Name)

    Look up the given symbol in the main JITDylib of the given LLJIT instance.

    This operation does not take ownership of the Name argument.

    Defined at line 998 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • const char * LLVMGetTargetExtTypeName (LLVMTypeRef TargetExtTy)

    Obtain the name for this target extension type.

    Defined at line 976 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetTargetExtTypeNumTypeParams (LLVMTypeRef TargetExtTy)

    Obtain the number of type parameters for this target extension type.

    Defined at line 981 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMGetTargetExtTypeTypeParam (LLVMTypeRef TargetExtTy, unsigned int Idx)

    Get the type parameter at the given index for the target extension type.

    Defined at line 986 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetTargetExtTypeNumIntParams (LLVMTypeRef TargetExtTy)

    Obtain the number of int parameters for this target extension type.

    Defined at line 992 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetTargetExtTypeIntParam (LLVMTypeRef TargetExtTy, unsigned int Idx)

    Get the int parameter at the given index for the target extension type.

    Defined at line 997 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMTypeOf (LLVMValueRef Val)

    Obtain the type of a value.

    Defined at line 1006 of file llvm/lib/IR/Core.cpp

  •  LLVMGetValueKind (LLVMValueRef Val)

    Obtain the enumerated type of a Value instance.

    Defined at line 1010 of file llvm/lib/IR/Core.cpp

  • void generateFlangClauseParserClass (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate classes entry for Flang clauses in the Flang parse-tree

    If the clause as a non-generic class, no entry is generated.

    If the clause does not hold a value, an EMPTY_CLASS is used.

    If the clause class is generic then a WRAPPER_CLASS is used. When the value

    is optional, the value class is wrapped into a std::optional.

    Defined at line 1010 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • VPValue * optimizeLatchExitInductionUser (VPlan & Plan, VPTypeAnalysis & TypeInfo, VPBlockBase * PredVPBB, VPValue * Op, DenseMap<VPValue *, VPValue *> & EndValues, PredicatedScalarEvolution & PSE)

    Attempts to optimize the induction variable exit values for users in the

    exit block coming from the latch in the original scalar loop.

    Defined at line 1011 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool isCopyOfPHI (const Value * V, const PHINode * PN)

    Return true if V is really PN, even accounting for predicateinfo copies.

    Defined at line 1012 of file llvm/lib/Transforms/Scalar/NewGVN.cpp

  • template <typename T>
    bool typecheckMDNode (T *& Result, MDNode * Node, const yaml::StringValue & Source, StringRef TypeString, MIRParserImpl & Parser)

    Verify that given node is of a certain type. Return true on error.

    Defined at line 1012 of file llvm/lib/CodeGen/MIRParser/MIRParser.cpp

  • LLVMOrcObjectLayerRef LLVMOrcLLJITGetObjLinkingLayer (LLVMOrcLLJITRef J)

    Returns a non-owning reference to the LLJIT instance's object linking layer.

    Defined at line 1013 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • const SCEV * getStartForNegStride (const SCEV * Start, const SCEV * BECount, Type * IntPtr, const SCEV * StoreSizeSCEV, ScalarEvolution * SE)

    If we have a negative stride, Start refers to the end of the memory location

    we're trying to memset. Therefore, we need to recompute the base pointer,

    which is just Start - BECount*Size.

    Defined at line 1013 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • SDValue combineShiftToAVG (SDValue Op, TargetLowering::TargetLoweringOpt & TLO, const TargetLowering & TLI, const APInt & DemandedBits, const APInt & DemandedElts, unsigned int Depth)

    Attempt to form ext(avgfloor(A, B)) from shr(add(ext(A), ext(B)), 1).

    or to form ext(avgceil(A, B)) from shr(add(ext(A), ext(B), 1), 1).

    Defined at line 1013 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • Value * optimizeShiftInOrChain (Value * V, int & Builder)

    Combine away instructions providing they are still equivalent when compared

    against 0. i.e do they have any bits set.

    Defined at line 1014 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • SDValue getv64i1Argument (CCValAssign & VA, CCValAssign & NextVA, SDValue & Root, SelectionDAG & DAG, const SDLoc & DL, const X86Subtarget & Subtarget, SDValue * InGlue)

    Reads two 32 bit registers and creates a 64 bit mask value.

    Parameters

    VA The current 32 bit value that need to be assigned.
    NextVA The next 32 bit value that need to be assigned.
    Root The parent DAG node.
    InGlue [in,out] Represents SDvalue in the parent DAG node for glue purposes. In the case the DAG is already using physical register instead of virtual, we should glue our new SDValue to InGlue SDvalue.

    Returns

    a new SDvalue of size 64bit.

    Defined at line 1014 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • bool canSimplifyNullStoreOrGEP (StoreInst & SI)

    Defined at line 1015 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • Value * foldNegativePower2AndShiftedMask (Value * A, Value * B, Value * D, Value * E, Predicate PredL, Predicate PredR, InstCombiner::BuilderTy & Builder)

    Try to fold (icmp(A

    &

    B) == 0)

    &

    (icmp(A

    &

    D) != E) into (icmp A u

    <

    D) iff

    B is a contiguous set of ones starting from the most significant bit

    (negative power of 2), D and E are equal, and D is a contiguous set of ones

    starting at the most significant zero bit in B. Parameter B supports masking

    using undef/poison in either scalar or vector values.

    Defined at line 1015 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool isCopyOfAPHI (const Value * V)

    Defined at line 1016 of file llvm/lib/Transforms/Scalar/NewGVN.cpp

  • bool isInvariantStore (const MachineInstr & MI, const TargetRegisterInfo * TRI, const MachineRegisterInfo * MRI)

    This function iterates through all the operands of the input store MI and

    checks that each register operand statisfies isCallerPreservedPhysReg.

    This means, the value being stored and the address where it is being stored

    is constant throughout the body of the function (not including prologue and

    epilogue). When called with an MI that isn't a store, it returns false.

    A future improvement can be to check if the store registers are constant

    throughout the loop rather than throughout the funtion.

    Defined at line 1016 of file llvm/lib/CodeGen/MachineLICM.cpp

  • LLVMOrcObjectTransformLayerRef LLVMOrcLLJITGetObjTransformLayer (LLVMOrcLLJITRef J)

    Returns a non-owning reference to the LLJIT instance's object linking layer.

    Defined at line 1017 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void TestEncodeDecode (const GsymCreator & GC, endianness ByteOrder, uint16_t Version, uint8_t AddrOffSize, uint64_t BaseAddress, uint32_t NumAddresses, ArrayRef UUID)

    Defined at line 1017 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • char getSymbolNMTypeChar (MachOObjectFile & Obj, content_iterator I)

    Defined at line 1017 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • Error ReduceGlobalInitializers (BugDriver & BD, BugTester TestFn)

    Attempt to eliminate as many global initializers as possible.

    Defined at line 1017 of file llvm/tools/bugpoint/CrashDebugger.cpp

  • void initializeExpandMemCmpLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 1019 of file llvm/lib/CodeGen/ExpandMemCmp.cpp

  • DenseSet getCHRConditionValuesForRegion (RegInfo & RI)

    Defined at line 1019 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • Value * genLoopLimit (PHINode * IndVar, BasicBlock * ExitingBB, const SCEV * ExitCount, bool UsePostInc, Loop * L, SCEVExpander & Rewriter, ScalarEvolution * SE)

    Insert an IR expression which computes the value held by the IV IndVar

    (which must be an loop counter w/unit stride) after the backedge of loop L

    is taken ExitCount times.

    Defined at line 1019 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • bool outputHasNonPHI (Value * V, unsigned int PHILoc, PHINode & PN, SmallPtrSet<BasicBlock *, 1> & Exits, DenseSet<BasicBlock *> & BlocksInRegion)

    Check if the

    has any uses outside of the region other than

    Parameters

    V [in] - The value to check.
    PHILoc [in] - The location in the PHINode of
    PN [in] - The PHINode using
    Exits [in] - The potential blocks we exit to from the outlined region.
    BlocksInRegion [in] - The basic blocks contained in the region.

    Defined at line 1019 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • Value * foldPHINodeOrSelectInst (Instruction & I)

    A helper that folds a PHI node or a select.

    Defined at line 1020 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool isTruncatedShiftCountForLEA (unsigned int ShAmt)

    Check whether the given shift count is appropriate

    can be represented by a LEA instruction.

    Defined at line 1020 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool isNoWrap (PredicatedScalarEvolution & PSE, const SCEVAddRecExpr * AR, Value * Ptr, Type * AccessTy, const Loop * L, bool Assume, const DominatorTree & DT, optional Stride)

    Check whether

    is a non-wrapping AddRec. If

    is not nullptr, use

    informating from the IR pointer value to determine no-wrap.

    Defined at line 1020 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • const char * LLVMGetValueName2 (LLVMValueRef Val, size_t * Length)

    Obtain the string name of a value.

    Defined at line 1022 of file llvm/lib/IR/Core.cpp

  • SlotTracker * createSlotTracker (const Value * V)

    Defined at line 1022 of file llvm/lib/IR/AsmWriter.cpp

  • unsigned int map_from_llvmDWARFsourcelanguage ( lang)

    ===----------------------------------------------------------------------===//

    LLVM C API implementations.

    ===----------------------------------------------------------------------===//

    Defined at line 1023 of file llvm/lib/IR/DebugInfo.cpp

  • void initializeTypePromotionLegacyPassOnce (PassRegistry & Registry)

    Defined at line 1024 of file llvm/lib/CodeGen/TypePromotion.cpp

  • BinaryOperator * ConvertShiftToMul (Instruction * Shl)

    If this is a shift of a reassociable multiply or is used by one, change

    this into a multiply by a constant to assist with further reassociation.

    Defined at line 1024 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • SmallVector<const DIVariable *, 2> dependencies (DbgVariable * Var)

    Return all DIVariables that appear in count: expressions.

    Defined at line 1025 of file llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp

  • bool canSimplifyNullLoadOrGEP (LoadInst & LI, Value * Op)

    Defined at line 1026 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • optional getOffsetFromIndex (const GEPOperator * GEP, unsigned int Idx, const DataLayout & DL)

    Defined at line 1026 of file llvm/lib/IR/Value.cpp

  • void bothcases (struct parse * , int )

    - bothcases - emit a dualcase version of a two-case character

    Boy, is this implementation ever a kludge...

    Defined at line 1027 of file llvm/lib/Support/regcomp.c

  • template <bool FP, typename Mul2Rhs>
    bool matchesSquareSum (BinaryOperator & I, Mul2Rhs M2Rhs, Value *& A, Value *& B)

    match variations of a^2 + 2*a*b + b^2

    to reuse the code between the FP and Int versions, the instruction OpCodes

    and constant types have been turned into template parameters.

    Mul2Rhs: The constant to perform the multiplicative equivalent of X*2 with;

    should be `m_SpecificFP(2.0)` for FP and `m_SpecificInt(1)` for Int

    (we're matching `X

    <

    <

    1` instead of `X*2` for Int)

    Defined at line 1027 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • Expected writeListEntry (raw_ostream & OS, const DWARFYAML::LoclistEntry & Entry, uint8_t AddrSize, bool IsLittleEndian)

    Defined at line 1027 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • void LLVMSetValueName2 (LLVMValueRef Val, const char * Name, size_t NameLen)

    Set the string name of a value.

    Defined at line 1028 of file llvm/lib/IR/Core.cpp

  • ConstantInt * getAnyNonZeroConstInt (PHINode & PN)

    Return an existing non-zero constant if this phi node has one, otherwise

    return constant 1.

    Defined at line 1029 of file llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp

  • bool findRedundantFlagInstr (MachineInstr & CmpInstr, MachineInstr & CmpValDefInstr, const MachineRegisterInfo * MRI, MachineInstr ** AndInstr, const TargetRegisterInfo * TRI, const X86Subtarget & ST, bool & NoSignFlag, bool & ClearsOverflowFlag)

    Defined at line 1029 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • ShapeT getTileShape (Register VirtReg, VirtRegMap * VRM, const MachineRegisterInfo * MRI)

    Defined at line 1030 of file llvm/lib/Target/X86/X86RegisterInfo.cpp

  • const SCEV * getNumBytes (const SCEV * BECount, Type * IntPtr, const SCEV * StoreSizeSCEV, Loop * CurLoop, const DataLayout * DL, ScalarEvolution * SE)

    Compute the number of bytes as a SCEV from the backedge taken count.

    This also maps the SCEV into the provided type and tries to handle the

    computation in a way that will fold cleanly.

    Defined at line 1031 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • const char * LLVMGetValueName (LLVMValueRef Val)

    Deprecated: Use LLVMGetValueName2 instead.

    Defined at line 1032 of file llvm/lib/IR/Core.cpp

  • Value * canonicalizeSaturatedAddUnsigned (ICmpInst * Cmp, Value * TVal, Value * FVal, InstCombiner::BuilderTy & Builder)

    Defined at line 1033 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • template <typename DIT>
    DIT * unwrapDI (LLVMMetadataRef Ref)

    Defined at line 1034 of file llvm/lib/IR/DebugInfo.cpp

  • bool alwaysAvailable (Value * V)

    Return true if V is a value that will always be available (IE can

    be placed anywhere) in the function. We don't do globals here

    because they are often worse to put in place.

    Defined at line 1034 of file llvm/lib/Transforms/Scalar/NewGVN.cpp

  • bool runImpl (Function & F, const TargetTransformInfo & TTI, DominatorTree * DT)

    Defined at line 1034 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • void generateFlangClauseParserClassList (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate a list of the different clause classes for Flang.

    Defined at line 1035 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • void LLVMSetValueName (LLVMValueRef Val, const char * Name)

    Deprecated: Use LLVMSetValueName2 instead.

    Defined at line 1036 of file llvm/lib/IR/Core.cpp

  • bool matchesAdd (Value * A, Value *& B, ConstantInt *& C)

    Returns true if A matches B + C where C is constant.

    Defined at line 1036 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp

  • Error writeOutput (const CommonConfig & Config, Object & Obj, raw_ostream & Out, ElfType OutputElfType)

    Defined at line 1036 of file llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp

  • void PrintFunctionStarts (MachOObjectFile * O)

    Defined at line 1036 of file llvm/tools/llvm-objdump/MachODump.cpp

  • MemAccessTy getAccessType (const TargetTransformInfo & TTI, Instruction * Inst, Value * OperandVal)

    Return the type of the memory being accessed.

    Defined at line 1037 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • DIFlags map_from_llvmDIFlags ( Flags)

    Defined at line 1038 of file llvm/lib/IR/DebugInfo.cpp

  • bool shouldSplit (Instruction * InsertPoint, DenseSet<Value *> & PrevConditionValues, DenseSet<Value *> & ConditionValues, DominatorTree & DT, DenseSet<Instruction *> & Unhoistables)

    Determine whether to split a scope depending on the sets of the branch

    condition values of the previous region and the current region. We split

    (return true) it if 1) the condition values of the inner/lower scope can't be

    hoisted up to the outer/upper scope, or 2) the two sets of the condition

    values have an empty intersection (because the combined branch conditions

    won't probably lead to a simpler combined condition).

    Defined at line 1038 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • bool isConstantSplatVectorMaskForType (SDNode * N, EVT ScalarTy)

    Defined at line 1039 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void LLVMDumpValue (LLVMValueRef Val)

    Dump a representation of a value to stderr.

    Defined at line 1040 of file llvm/lib/IR/Core.cpp

  • void initializeGlobalsAAWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1040 of file llvm/lib/Analysis/GlobalsModRef.cpp

  • APInt getElementIndex (TypeSize ElemSize, APInt & Offset)

    Defined at line 1040 of file llvm/lib/IR/DataLayout.cpp

  • bool matchesOr (Value * A, Value *& B, ConstantInt *& C)

    Returns true if A matches B | C where C is constant.

    Defined at line 1041 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp

  • bool introduceTooManyPhiEntries (BasicBlock * BB, BasicBlock * Succ)

    Check whether removing

    will make the phis in its

    have too

    many incoming entries. This function does not check whether

    is

    foldable or not.

    Defined at line 1041 of file llvm/lib/Transforms/Utils/Local.cpp

  •  map_to_llvmDIFlags (DIFlags Flags)

    Defined at line 1042 of file llvm/lib/IR/DebugInfo.cpp

  • bool foldICmpOrChain (Instruction & I, const DataLayout & DL, TargetTransformInfo & TTI, AliasAnalysis & AA, const DominatorTree & DT)

    Defined at line 1042 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • char * LLVMPrintValueToString (LLVMValueRef Val)

    Return a string representation of the value. Use

    LLVMDisposeMessage to free the string.

    Defined at line 1044 of file llvm/lib/IR/Core.cpp

  • DISPFlags pack_into_DISPFlags (bool IsLocalToUnit, bool IsDefinition, bool IsOptimized)

    Defined at line 1046 of file llvm/lib/IR/DebugInfo.cpp

  • Value * simplifyDivRem (BinaryOps Opcode, Value * Op0, Value * Op1, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Check for common or similar folds of integer division or integer remainder.

    This applies to all 4 opcodes (sdiv/udiv/srem/urem).

    Defined at line 1046 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void generateFlangClauseDump (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate dump node list for the clauses holding a generic class name.

    Defined at line 1047 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • bool decodePunycodeDigit (char C, size_t & Value)

    Defined at line 1047 of file llvm/lib/Demangle/RustDemangle.cpp

  • template <typename T, typename V>
    void printAuxMemberHelper (PrintStyle Style, const char * MemberName, const T & Member, const V * AuxHeader, uint16_t AuxSize, uint16_t & PartialFieldOffset, const char *& PartialFieldName, ScopedPrinter & W)

    Defined at line 1047 of file llvm/tools/llvm-readobj/XCOFFDumper.cpp

  • void ordinary (struct parse * , int )

    - ordinary - emit an ordinary character

    Defined at line 1048 of file llvm/lib/Support/regcomp.c

  • bool isValidProtoForSizeReturningNew (const FunctionType & FTy, LibFunc F, const Module & M, int SizeTSizeBits)

    Defined at line 1048 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • template <, >
    IsHardLinkToMatcherP2<FS_type, Target_type> IsHardLinkTo (FS_type gmock_p0, Target_type gmock_p1)

    Defined at line 1049 of file llvm/unittests/Support/VirtualFileSystemTest.cpp

  • bool shouldPrintInline (const SDNode & Node, const SelectionDAG * G)

    Return true if this node is so simple that we should just print it inline

    if it appears as an operand.

    Defined at line 1049 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

  • bool isCopyFeedingInvariantStore (const MachineInstr & MI, const MachineRegisterInfo * MRI, const TargetRegisterInfo * TRI)

    Return true if the input MI is a copy instruction that feeds an invariant

    store instruction. This means that the src of the copy has to satisfy

    isCallerPreservedPhysReg and atleast one of it's users should satisfy

    isInvariantStore.

    Defined at line 1050 of file llvm/lib/CodeGen/MachineLICM.cpp

  • unsigned int LLVMDebugMetadataVersion ()

    The current debug metadata version number.

    Defined at line 1051 of file llvm/lib/IR/DebugInfo.cpp

  • bool valueIsOnlyUsedLocallyOrStoredToOneGlobal (const CallInst * CI, const GlobalVariable * GV)

    Scan the use-list of GV checking to make sure that there are no complex uses

    of GV. We permit simple things like dereferencing the pointer, but not

    storing through the address, unless it is to the specified global.

    Defined at line 1052 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool addArgumentAttrsFromCallsites (Function & F)

    If a callsite has arguments that are also arguments to the parent function,

    try to propagate attributes from the callsite's arguments to the parent's

    arguments. This may be important because inlining can cause information loss

    when attribute knowledge disappears with the inlined call.

    Defined at line 1052 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • Expected lookupSections (ObjectFile & OF, InstrProfSectKind IPSK)

    Find all sections that match

    name. There may be more than one if

    comdats are in use, e.g. for the __llvm_covfun section on ELF.

    Defined at line 1053 of file llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  • bool promoteIndirectCalls (Module & M, ProfileSummaryInfo * PSI, bool InLTO, bool SamplePGO, ModuleAnalysisManager & MAM)

    A wrapper function that does the actual work.

    Defined at line 1054 of file llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp

  • bool hasLoopCarriedMemDep (const SUnitWithMemInfo & Src, const SUnitWithMemInfo & Dst, BatchAAResults & BAA, const TargetInstrInfo * TII, const TargetRegisterInfo * TRI, const SwingSchedulerDAG * SSD, bool PerformCheapCheck)

    Returns true if there is a loop-carried order dependency from

    to

    Defined at line 1054 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • void emitDecodeInstruction (formatted_raw_ostream & OS, bool IsVarLenInst, const DecoderTableInfo & TableInfo)

    emitDecodeInstruction - Emit the templated helper function

    decodeInstruction().

    Defined at line 1057 of file llvm/utils/TableGen/DecoderEmitter.cpp

  • unsigned int LLVMGetModuleDebugMetadataVersion (LLVMModuleRef Module)

    The version of debug metadata that's present in the provided

    Defined at line 1063 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMDIBuilderRef LLVMCreateDIBuilderDisallowUnresolved (LLVMModuleRef M)

    Construct a builder for a module, and do not allow for unresolved nodes

    attached to the module.

    Defined at line 1055 of file llvm/lib/IR/DebugInfo.cpp

  • unsigned int FindInOperandList (const SmallVectorImpl<ValueEntry> & Ops, unsigned int i, Value * X)

    Scan backwards and forwards among values with the same rank as element i

    to see if X exists. If X does not exist, return i. This is useful when

    scanning for 'x' when we see '-x' because they both get the same rank.

    Defined at line 1055 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • LLVMDIBuilderRef LLVMCreateDIBuilder (LLVMModuleRef M)

    Construct a builder for a module and collect unresolved nodes attached

    to the module in order to resolve cycles during a call to

    Defined at line 1059 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMContextRef LLVMGetValueContext (LLVMValueRef Val)

    Obtain the context to which this value is associated.

    Defined at line 1058 of file llvm/lib/IR/Core.cpp

  • void DiagHandler (const SMDiagnostic & Diag, void * Context)

    Defined at line 1059 of file llvm/lib/TextAPI/TextStub.cpp

  • void DumpNodes (const SDNode * N, unsigned int indent, const SelectionDAG * G)

    Defined at line 1060 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

  • char getSymbolNMTypeChar (TapiFile & Obj, content_iterator I)

    Defined at line 1060 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void generateFlangClauseUnparse (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate Unparse functions for clauses classes in the Flang parse-tree

    If the clause is a non-generic class, no entry is generated.

    Defined at line 1060 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • Instruction * processUGT_ADDCST_ADD (ICmpInst & I, Value * A, Value * B, ConstantInt * CI2, ConstantInt * CI1, InstCombinerImpl & IC)

    The caller has matched a pattern of the form:

    I = icmp ugt (add (add A, B), CI2), CI1

    If this is of the form:

    sum = a + b

    if (sum+128 >u 255)

    Then replace it with llvm.sadd.with.overflow.i8.

    Defined at line 1060 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void removeNullBytes (OutputBuffer & Output, size_t StartIdx)

    Defined at line 1061 of file llvm/lib/Demangle/RustDemangle.cpp

  • char * LLVMPrintDbgRecordToString (LLVMDbgRecordRef Record)

    Return a string representation of the DbgRecord. Use

    LLVMDisposeMessage to free the string.

    Defined at line 1062 of file llvm/lib/IR/Core.cpp

  • bool processSDivOrSRem (BinaryOperator * Instr, LazyValueInfo * LVI)

    Defined at line 1062 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • template <typename OuterT, typename ChildT>
    void diaDumpChildren (PDBSymbol & Outer, PdbSymbolIdField Ids, PdbSymbolIdField Recurse)

    Defined at line 1063 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • bool is16BitEquivalent (const char * orig, const char * equiv)

    Determine whether equiv is the 16-bit equivalent of orig (32-bit or 64-bit).

    Defined at line 1063 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • template <class T>
    void checkAndPrintAuxHeaderParseError (const char * PartialFieldName, uint16_t PartialFieldOffset, uint16_t AuxSize, T & AuxHeader, XCOFFDumper * Dumper)

    Defined at line 1064 of file llvm/tools/llvm-readobj/XCOFFDumper.cpp

  • void nonnewline (struct parse * )

    - nonnewline - emit REG_NEWLINE version of OANY

    Boy, is this implementation ever a kludge...

    Defined at line 1065 of file llvm/lib/Support/regcomp.c

  • SDValue lowerRegToMasks (const SDValue & ValArg, const EVT & ValVT, const EVT & ValLoc, const SDLoc & DL, SelectionDAG & DAG)

    The function will lower a register of various sizes (8/16/32/64)

    to a mask value of the expected size (v8i1/v16i1/v32i1/v64i1)

    Defined at line 1065 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • InstructionCost divideNearest (InstructionCost Numerator, uint64_t Denominator)

    Defined at line 1066 of file llvm/lib/CodeGen/SelectOptimize.cpp

  • LLVMBool LLVMStripModuleDebugInfo (LLVMModuleRef Module)

    Strip debug info in the module if it exists.

    To do this, we remove all calls to the debugger intrinsics and any named

    metadata for debugging. We also remove debug locations for instructions.

    Return true if module is modified.

    Defined at line 1067 of file llvm/lib/IR/DebugInfo.cpp

  • bool isLoadInvariantInLoop (LoadInst * LI, DominatorTree * DT, Loop * CurLoop)

    Return true if LI is invariant within scope of the loop. LI is invariant if

    CurLoop is dominated by an invariant.start representing the same memory

    location and size as the memory location LI loads from, and also the

    invariant.start has no uses.

    Defined at line 1067 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • template <class ELFO>
    const typename ELFO::Elf_Shdr * findNotEmptySectionByAddress (const ELFO & Obj, StringRef FileName, uint64_t Addr)

    Defined at line 1068 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool isConstantOrConstantVector (SDValue N, bool NoOpaques, bool AllowTruncation)

    Determines if it is a constant integer or a splat/build vector of constant

    integers (and undefs).

    Do not permit build vector implicit truncation unless AllowTruncation is set.

    Defined at line 1069 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void applyFirstDebugLoc (Function * oldFunction, ArrayRef Blocks, Instruction * BranchI)

    If the original function has debug info, we have to add a debug location

    to the new branch instruction from the artificial entry block.

    We use the debug location of the first instruction in the extracted

    blocks, as there is no other equivalent line in the source code.

    Defined at line 1070 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • bool encodeUTF8 (size_t CodePoint, char * Output)

    Encodes code point as UTF-8 and stores results in Output. Returns false if

    CodePoint is not a valid unicode scalar value.

    Defined at line 1070 of file llvm/lib/Demangle/RustDemangle.cpp

  • std::pair<APInt, APInt> getStrideAndModOffsetOfGEP (Value * PtrOp, const DataLayout & DL)

    Calculate GEP Stride and accumulated const ModOffset. Return Stride and

    ModOffset

    Defined at line 1070 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • SmallVector<DbgVariable *, 8> sortLocalVars (SmallVectorImpl<DbgVariable *> & Input)

    Sort local variables so that variables appearing inside of helper

    expressions come first.

    Defined at line 1070 of file llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp

  • void LLVMDisposeDIBuilder (LLVMDIBuilderRef Builder)

    Deallocates the

    and everything it owns.

    Defined at line 1071 of file llvm/lib/IR/DebugInfo.cpp

  • bool extractBranchWeights (SelectLike SI, uint64_t & TrueVal, uint64_t & FalseVal)

    Defined at line 1071 of file llvm/lib/CodeGen/SelectOptimize.cpp

  • Error ReduceInsts (BugDriver & BD, BugTester TestFn)

    Defined at line 1072 of file llvm/tools/bugpoint/CrashDebugger.cpp

  • void redirectValuesFromPredecessorsToPhi (BasicBlock * BB, const PredBlockVector & BBPreds, PHINode * PN, BasicBlock * CommonPred)

    Replace a value flowing from a block to a phi with

    potentially multiple instances of that value flowing from the

    block's predecessors to the phi.

    Parameters

    BB The block with the value flowing into the phi.
    BBPreds The predecessors of BB.
    PN The phi that we are updating.
    CommonPred The common predecessor of BB and PN's BasicBlock

    Defined at line 1073 of file llvm/lib/Transforms/Utils/Local.cpp

  • char getSymbolNMTypeChar (WasmObjectFile & Obj, content_iterator I)

    Defined at line 1074 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void visitPointers (Value * StartPtr, const Loop & InnermostLoop, function_ref<void (Value *)> AddPointer)

    Defined at line 1074 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • void LLVMDIBuilderFinalize (LLVMDIBuilderRef Builder)

    Construct any deferred debug info descriptors.

    Defined at line 1075 of file llvm/lib/IR/DebugInfo.cpp

  • void LLVMReplaceAllUsesWith (LLVMValueRef OldVal, LLVMValueRef NewVal)

    Replace all uses of a value with another one.

    Defined at line 1076 of file llvm/lib/IR/Core.cpp

  • void updateForIncomingValueLocation (PHINode * PN, DebugLoc DL, bool ApplyMergedLoc)

    Update the debug location of a phi.

    indicates whether to

    create a merged location incorporating

    or to set

    directly.

    Defined at line 1076 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp

  • void analyzeExitPHIsForOutputUses (BasicBlock * CurrentExitFromRegion, SmallPtrSet<BasicBlock *, 1> & PotentialExitsFromRegion, DenseSet<BasicBlock *> & RegionBlocks, SetVector<Value *> & Outputs, DenseSet<Value *> & OutputsReplacedByPHINode, DenseSet<Value *> & OutputsWithNonPhiUses)

    Test whether

    contains any PhiNodes that should be

    considered outputs. A PHINodes is an output when more than one incoming

    value has been marked by the CodeExtractor as an output.

    Parameters

    CurrentExitFromRegion [in] - The block to analyze.
    PotentialExitsFromRegion [in] - The potential exit blocks from the region.
    RegionBlocks [in] - The basic blocks in the region.
    Outputs [in, out] - The existing outputs for the region, we may add PHINodes to this as we find that they replace output values.
    OutputsReplacedByPHINode [out] - A set containing outputs that are totally replaced by a PHINode.
    OutputsWithNonPhiUses [out] - A set containing outputs that are used in PHINodes, but have other uses, and should still be considered outputs.

    Defined at line 1076 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • int getTryRank (const WinEHFuncInfo & FuncInfo, int State)

    Defined at line 1077 of file llvm/lib/CodeGen/AsmPrinter/WinException.cpp

  • void dumpDia (StringRef Path)

    Defined at line 1077 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • llvm::ModulePass * createCheckDebugifyModulePass (bool Strip, StringRef NameOfWrappedPass, DebugifyStatsMap * StatsMap, DebugifyMode Mode, DebugInfoPerPass * DebugInfoBeforePass, StringRef OrigDIVerifyBugsReportFilePath)

    Defined at line 1078 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • void LLVMDIBuilderFinalizeSubprogram (LLVMDIBuilderRef Builder, LLVMMetadataRef Subprogram)

    Finalize a specific subprogram.

    No new variables may be added to this subprogram afterwards.

    Defined at line 1079 of file llvm/lib/IR/DebugInfo.cpp

  • bool isBackwardPropagatableCopy (const DestSourcePair & CopyOperands, const MachineRegisterInfo & MRI)

    Defined at line 1079 of file llvm/lib/CodeGen/MachineCopyPropagation.cpp

  • int LLVMHasMetadata (LLVMValueRef Val)

    Determine whether an instruction has any metadata attached.

    Defined at line 1080 of file llvm/lib/IR/Core.cpp

  • bool shouldEmitDWARF (DWARFYAML::Data & DWARF, StringRef Name)

    Defined at line 1081 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • Value * EmitAddTreeOfValues (Instruction * I, SmallVectorImpl<WeakTrackingVH> & Ops)

    Emit a tree of add instructions, summing Ops together

    and returning the result. Insert the tree before I.

    Defined at line 1081 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • bool optimizeBlock (BasicBlock & BB, bool & ModifiedDT, const TargetTransformInfo & TTI, const DataLayout & DL, bool HasBranchDivergence, DomTreeUpdater * DTU)

    Defined at line 1081 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • Value * foldPowerOf2AndShiftedMask (ICmpInst * Cmp0, ICmpInst * Cmp1, bool JoinedByAnd, InstCombiner::BuilderTy & Builder)

    Try to fold ((icmp X u

    <

    P)

    &

    (icmp(X

    &

    M) != M)) or ((icmp X s> -1)

    &

    (icmp(X

    &

    M) != M)) into (icmp X u

    <

    M). Where P is a power of 2, M

    <

    P, and

    M is a contiguous shifted mask starting at the right most significant zero

    bit in P. SGT is supported as when P is the largest representable power of

    2, an earlier optimization converts the expression into (icmp X s> -1).

    Parameter P supports masking using undef/poison in either scalar or vector

    values.

    Defined at line 1081 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void repeat (struct parse * , sopno , int , int )

    - repeat - generate code for a bounded repetition, recursively if needed

    Defined at line 1081 of file llvm/lib/Support/regcomp.c

  • char getSymbolNMTypeChar (IRObjectFile & Obj, content_iterator I)

    Defined at line 1081 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool is64Bit (const char * name)

    Determine whether this instruction is a 64-bit instruction.

    Defined at line 1082 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool processAShr (BinaryOperator * SDI, LazyValueInfo * LVI)

    Defined at line 1082 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void replaceValuesPerBlockEntry (SmallVectorImpl<AvailableValueInBlock> & ValuesPerBlock, Value * OldValue, Value * NewValue)

    If the specified OldValue exists in ValuesPerBlock, replace its value with

    NewValue.

    Defined at line 1083 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • void createSymbolTable (object::Archive * OldArchive)

    Defined at line 1083 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateCompileUnit (LLVMDIBuilderRef Builder,  Lang, LLVMMetadataRef FileRef, const char * Producer, size_t ProducerLen, LLVMBool isOptimized, const char * Flags, size_t FlagsLen, unsigned int RuntimeVer, const char * SplitName, size_t SplitNameLen,  Kind, unsigned int DWOId, LLVMBool SplitDebugInlining, LLVMBool DebugInfoForProfiling, const char * SysRoot, size_t SysRootLen, const char * SDK, size_t SDKLen)

    A CompileUnit provides an anchor for all debugging

    information generated during this instance of compilation.

    Parameters

    Lang Source programming language, eg.
    FileRef File info.
    Producer Identify the producer of debugging information and code. Usually this is a compiler version string.
    ProducerLen The length of the C string passed to
    isOptimized A boolean flag which indicates whether optimization is enabled or not.
    Flags This string lists command line options. This string is directly embedded in debug info output which may be used by a tool analyzing generated debugging information.
    FlagsLen The length of the C string passed to
    RuntimeVer This indicates runtime version for languages like Objective-C.
    SplitName The name of the file that we'll split debug info out into.
    SplitNameLen The length of the C string passed to
    Kind The kind of debug information to generate.
    DWOId The DWOId if this is a split skeleton compile unit.
    SplitDebugInlining Whether to emit inline debug info.
    DebugInfoForProfiling Whether to emit extra debug info for profile collection.
    SysRoot The Clang system root (value of -isysroot).
    SysRootLen The length of the C string passed to
    SDK The SDK. On Darwin, the last component of the sysroot.
    SDKLen The length of the C string passed to

    Defined at line 1084 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMValueRef LLVMGetMetadata (LLVMValueRef Val, unsigned int KindID)

    Return metadata associated with an instruction value.

    Defined at line 1084 of file llvm/lib/IR/Core.cpp

  • bool MatchMul (Value * E, Value *& Op, APInt & C)

    Matches multiplication expression Op * C where C is a constant. Returns the

    constant value in C and the other operand in Op. Returns true if such a

    match is found.

    Defined at line 1084 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • void removeRedundantExpandSCEVRecipes (VPlan & Plan)

    Remove redundant EpxandSCEVRecipes in

    entry block by replacing

    them with already existing recipes expanding the same SCEV expression.

    Defined at line 1084 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • double putchard (double X)

    putchard - putchar that takes a double and returns 0.

    Defined at line 1085 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • void ProfileBinOpInit (FoldingSetNodeID & ID, unsigned int Opcode, const Init * LHS, const Init * RHS, const RecTy * Type)

    Defined at line 1086 of file llvm/lib/TableGen/Record.cpp

  • int getTryAncestor (const WinEHFuncInfo & FuncInfo, int Left, int Right)

    Defined at line 1086 of file llvm/lib/CodeGen/AsmPrinter/WinException.cpp

  • bool jumpTableHasOtherUses (const MachineFunction & MF, const MachineBasicBlock & IgnoreMBB, int JumpTableIndex)

    Returns `true` if there are possibly other users of the jump table at

    `JumpTableIndex` except for the ones in `IgnoreMBB`.

    Defined at line 1086 of file llvm/lib/CodeGen/MachineBasicBlock.cpp

  • template <class ELFT>
    Expected emitDWARF (typename ELFT::Shdr & SHeader, StringRef Name, const DWARFYAML::Data & DWARF, ContiguousBlobAccumulator & CBA)

    Defined at line 1087 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • bool isObjCSelector (StringRef Name)

    Defined at line 1088 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  • OSType getOSTypeFromMCVM (MCVersionMinType Type)

    Defined at line 1090 of file llvm/lib/MC/MCParser/DarwinAsmParser.cpp

  • bool isExistingPhi (const SCEVAddRecExpr * AR, ScalarEvolution & SE)

    Return true if this AddRec is already a phi in its loop.

    Defined at line 1090 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • llvm::FunctionPass * createCheckDebugifyFunctionPass (bool Strip, StringRef NameOfWrappedPass, DebugifyStatsMap * StatsMap, DebugifyMode Mode, DebugInfoPerPass * DebugInfoBeforePass, StringRef OrigDIVerifyBugsReportFilePath)

    Defined at line 1090 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • Expected lookupAllocatableSection (ObjectFile & OF, InstrProfSectKind IPSK)

    Find a section that matches

    and is allocatable at runtime.

    Returns the contents of the section and its start offset in the object file.

    Defined at line 1090 of file llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  • double printd (double X)

    printd - printf that takes a double prints it as "%f\n", returning 0.

    Defined at line 1091 of file llvm/examples/Kaleidoscope/Chapter6/toy.cpp

  • void eraseLifetimeMarkersOnInputs (const SetVector<BasicBlock *> & Blocks, const SetVector<Value *> & SunkAllocas, SetVector<Value *> & LifetimesStart)

    Erase lifetime.start markers which reference inputs to the extraction

    region, and insert the referenced memory into

    The extraction region is defined by a set of blocks (

    and a set

    of allocas which will be moved from the caller function into the extracted

    function (

    Defined at line 1091 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • bool addAccessAttr (Argument * A, AttrKind R)

    Defined at line 1091 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool hasImplicitComdat (size_t Val)

    ===----------------------------------------------------------------------===//

    Helper functions to implement forward reference resolution, etc.

    ===----------------------------------------------------------------------===//

    Defined at line 1092 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • MachineInstr & insertPHI (MachineRegisterInfo & MRI, const TargetInstrInfo & TII, const SmallVectorImpl<RegSubRegPair> & SrcRegs, MachineInstr & OrigPHI)

    Insert a PHI instruction with incoming edges

    that are

    guaranteed to have the same register class. This is necessary whenever we

    successfully traverse a PHI instruction and find suitable sources coming

    from its edges. By inserting a new PHI, we provide a rewritten PHI def

    suitable to be used in a new COPY instruction.

    Defined at line 1092 of file llvm/lib/CodeGen/PeepholeOptimizer.cpp

  • bool tryToOptimizeStoreOfAllocationToGlobal (GlobalVariable * GV, CallInst * CI, const DataLayout & DL, TargetLibraryInfo * TLI)

    If we have a global that is only initialized with a fixed size allocation

    try to transform the program to use global memory instead of heap

    allocated memory. This eliminates dynamic allocation, avoids an indirection

    accessing the data, and exposes the resultant global to further GlobalOpt.

    Defined at line 1092 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • int getInstructionIDWithAttrMask (uint16_t * instructionID, struct InternalInstruction * insn, uint16_t attrMask)

    Determine the ID of an instruction, consuming the ModR/M byte as appropriate

    for extended and escape opcodes, and using a supplied attribute mask.

    Defined at line 1093 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool isObject (SymbolicFile & Obj, content_iterator I)

    Defined at line 1094 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool isAnyConstantBuildVector (SDValue V, bool NoOpaques)

    Determines if a BUILD_VECTOR is composed of all-constants possibly mixed with

    undef's.

    Defined at line 1094 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • MDNode * extractMDNode (MetadataAsValue * MAV)

    MetadataAsValue uses a canonical format which strips the actual MDNode for

    MDNode with just a single constant value, storing just a ConstantAsMetadata

    This undoes this canonicalization, reconstructing the MDNode.

    Defined at line 1095 of file llvm/lib/IR/Core.cpp

  • MDNode * getOrSelfReference (LLVMContext & Context, ArrayRef Ops)

    Get a node or a self-reference that looks like it.

    Special handling for finding self-references, for use by

    and

    to maintain behaviour from

    when self-referencing nodes were still uniqued. If the first operand has

    the same operands as

    return the first operand instead.

    Defined at line 1095 of file llvm/lib/IR/Metadata.cpp

  • Intrinsic::ID shouldUpgradeNVPTXTMAG2SIntrinsics (Function * F, StringRef Name)

    Defined at line 1096 of file llvm/lib/IR/AutoUpgrade.cpp

  • SDValue getPopFromX87Reg (SelectionDAG & DAG, SDValue Chain, const SDLoc & dl, Register Reg, EVT VT, SDValue Glue)

    Defined at line 1098 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • bool optimizeCallInst (CallInst * CI, bool & ModifiedDT, const TargetTransformInfo & TTI, const DataLayout & DL, bool HasBranchDivergence, DomTreeUpdater * DTU)

    Defined at line 1098 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp

  • void getSelectsInScope (CHRScope * Scope, DenseSet<Instruction *> & Output)

    Defined at line 1100 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • void PrintDataInCodeTable (MachOObjectFile * O, bool verbose)

    Defined at line 1100 of file llvm/tools/llvm-objdump/MachODump.cpp

  • StringRef getNMTypeName (SymbolicFile & Obj, content_iterator I)

    For ELF object files, Set TypeName to the symbol typename, to be printed

    in the 'Type' column of the SYSV format output.

    Defined at line 1101 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void recursivelyDeleteDeadRecipes (VPValue * V)

    Defined at line 1101 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • Value * ConstructSSAForLoadSet (LoadInst * Load, SmallVectorImpl<AvailableValueInBlock> & ValuesPerBlock, GVNPass & GVN)

    Given a set of loads specified by ValuesPerBlock,

    construct SSA form, allowing us to eliminate Load. This returns the value

    that should be used at Load's definition site.

    Defined at line 1101 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • bool canSplitIdx (LoadSDNode * LD)

    Determine if this an indexed load with an opaque target constant index.

    Defined at line 1102 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Expected parseDWARF64StringOffsetsTableHeader (DWARFDataExtractor & DA, uint64_t Offset)

    Look for a DWARF64-formatted contribution to the string offsets table

    starting at a given offset and record it in a descriptor.

    Defined at line 1102 of file llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp

  • bool MatchRem (Value * E, Value *& Op, APInt & C, bool & IsSigned)

    Matches remainder expression Op % C where C is a constant. Returns the

    constant value in C and the other operand in Op. Returns the signedness of

    the remainder operation in IsSigned. Returns true if such a match is

    found.

    Defined at line 1102 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • FunctionPass * useDefaultRegisterAllocator ()

    -regalloc=... command line option.

    Defined at line 1103 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • bool replaceOperandIfSame (Instruction * Inst, unsigned int OpIdx, Value * OldVal, Value * NewVal)

    Replace operand

    in

    if the value is the same as

    with

    Defined at line 1104 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • void updateAsyncFuncPointerContextSize (coro::Shape & Shape)

    Defined at line 1104 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • LinkageTypes getDecodedLinkage (unsigned int Val)

    Defined at line 1104 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool decodePunycode (basic_string_view Input, OutputBuffer & Output)

    Decodes string encoded using punycode and appends results to Output.

    Returns true if decoding was successful.

    Defined at line 1105 of file llvm/lib/Demangle/RustDemangle.cpp

  • ThreadSafeModule irgenAndTakeOwnership (FunctionAST & FnAST, const std::string & Suffix)

    This will compile FnAST to IR, rename the function to add the given

    suffix (needed to prevent a name-clash with the function's stub),

    and then take ownership of the module that the function was compiled

    into.

    Defined at line 1106 of file llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateFile (LLVMDIBuilderRef Builder, const char * Filename, size_t FilenameLen, const char * Directory, size_t DirectoryLen)

    Create a file descriptor to hold debugging information for a file.

    Parameters

    Builder The
    Filename File name.
    FilenameLen The length of the C string passed to
    Directory Directory.
    DirectoryLen The length of the C string passed to

    Defined at line 1104 of file llvm/lib/IR/DebugInfo.cpp

  • void LLVMSetMetadata (LLVMValueRef Val, unsigned int KindID, LLVMValueRef Node)

    Set metadata associated with an instruction value.

    Defined at line 1106 of file llvm/lib/IR/Core.cpp

  • bool unswitchAllTrivialConditions (Loop & L, DominatorTree & DT, LoopInfo & LI, ScalarEvolution * SE, MemorySSAUpdater * MSSAU)

    This routine scans the loop to find a branch or switch which occurs before

    any side effects occur. These can potentially be unswitched without

    duplicating the loop. If a branch or switch is successfully unswitched the

    scanning continues to see if subsequent branches or switches have become

    trivial. Once all trivial candidates have been unswitched, this routine

    returns.

    The return value indicates whether anything was unswitched (and therefore

    changed).

    If `SE` is not null, it will be updated based on the potential loop SCEVs

    invalidated by this.

    Defined at line 1107 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool isRebasedHexDigit (char C)

    Defined at line 1108 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • void replaceAllUsesWith (Value * Old, Value * New, SmallPtrSet<BasicBlock *, 32> & FreshBBs, bool IsHuge)

    Replace all old uses with new ones, and push the updated BBs into FreshBBs.

    Defined at line 1108 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • void InitializeModuleAndPassManager ()

    ===----------------------------------------------------------------------===//

    Top-Level parsing and JIT Driver

    ===----------------------------------------------------------------------===//

    Defined at line 1109 of file llvm/examples/Kaleidoscope/Chapter8/toy.cpp

  • void initializeX86AsmPrinterPassOnce (PassRegistry & Registry)

    Defined at line 1110 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • uint8_t rebasedHexDigitToNumber (char C)

    Defined at line 1110 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • bool isHighCostExpansion (const SCEV * S, SmallPtrSetImpl<const SCEV *> & Processed, ScalarEvolution & SE)

    Check if expanding this expression is likely to incur significant cost. This

    is tricky because SCEV doesn't track which expressions are actually computed

    by the current IR.

    We currently allow expansion of IV increments that involve adds,

    multiplication by constants, and AddRecs from existing phis.

    TODO: Allow UDivExpr if we can find an existing IV increment that is an

    obvious multiple of the UDivExpr.

    Defined at line 1110 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool processSExt (SExtInst * SDI, LazyValueInfo * LVI)

    Defined at line 1111 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • char getNMSectionTagAndName (SymbolicFile & Obj, content_iterator I, StringRef & SecName)

    Return Posix nm class type tag (single letter), but also set SecName and

    section and name, to be used in format=sysv output.

    Defined at line 1111 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • ChecksumKind map_from_llvmChecksumKind ( CSKind)

    Defined at line 1112 of file llvm/lib/IR/DebugInfo.cpp

  • bool foldPatternedLoads (Instruction & I, const DataLayout & DL)

    If C is a constant patterned array and all valid loaded results for given

    alignment are same to a constant, return that constant.

    Defined at line 1112 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • void initIRBuilder (IRBuilder<> & Builder, const DILocation * DL, InsertPosition InsertPt)

    Initialize IRBuilder for inserting dbg.declare and dbg.value intrinsics.

    This abstracts over the various ways to specify an insert position.

    Defined at line 1113 of file llvm/lib/IR/DIBuilder.cpp

  • Value * foldUnsignedUnderflowCheck (ICmpInst * ZeroICmp, ICmpInst * UnsignedICmp, bool IsAnd, const SimplifyQuery & Q, InstCombiner::BuilderTy & Builder)

    Commuted variants are assumed to be handled by calling this function again

    with the parameters swapped.

    Defined at line 1113 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void findForkedSCEVs (ScalarEvolution * SE, const Loop * L, Value * Ptr, int & ScevList, unsigned int Depth)

    Walk back through the IR for a pointer, looking for a select like the

    following:

    %offset = select i1 %cmp, i64 %a, i64 %b

    %addr = getelementptr double, double* %base, i64 %offset

    %ld = load double, double* %addr, align 8

    We won't be able to form a single SCEVAddRecExpr from this since the

    address for each loop iteration depends on %cmp. We could potentially

    produce multiple valid SCEVAddRecExprs, though, and check all of them for

    memory safety/aliasing if needed.

    If we encounter some IR we don't yet handle, or something obviously fine

    like a constant, then we just add the SCEV for that term to the list passed

    in by the caller. If we have a node that may potentially yield a valid

    SCEVAddRecExpr then we decompose it into parts and build the SCEV terms

    ourselves before adding to the list.

    Defined at line 1113 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • const StringInit * ConcatStringInits (const StringInit * I0, const StringInit * I1)

    Defined at line 1114 of file llvm/lib/TableGen/Record.cpp

  • void remapOperands (VPBlockBase * Entry, VPBlockBase * NewEntry, DenseMap<VPValue *, VPValue *> & Old2NewVPValues)

    Defined at line 1114 of file llvm/lib/Transforms/Vectorize/VPlan.cpp

  • void UpdateAnalysisInformation (BasicBlock * OldBB, BasicBlock * NewBB, ArrayRef Preds, DomTreeUpdater * DTU, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA, bool & HasLoopExit)

    Update DominatorTree, LoopInfo, and LCCSA analysis information.

    Invalidates DFS Numbering when DTU or DT is provided.

    Defined at line 1114 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • void generateFlangClauseCheckPrototypes (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate check in the Enter functions for clauses classes.

    Defined at line 1115 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • bool isIgnoredPass (StringRef PassID)

    Defined at line 1116 of file llvm/lib/Transforms/Utils/Debugify.cpp

  • template <typename InstrType>
    bool replaceSimplePointerUse (const TargetTransformInfo & TTI, InstrType * MemInstr, unsigned int AddrSpace, Value * OldV, Value * NewV)

    Defined at line 1116 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • bool printOperand (raw_ostream & OS, const SelectionDAG * G, SDValue Value)

    Defined at line 1116 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

  • void insertLifetimeMarkersSurroundingCall (Module * M, ArrayRef LifetimesStart, ArrayRef LifetimesEnd, CallInst * TheCall)

    Insert lifetime start/end markers surrounding the call to the new function

    for objects defined in the caller.

    Defined at line 1116 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • bool getConstraintFromMemoryAccess (GetElementPtrInst & GEP, uint64_t AccessSize, CmpPredicate & Pred, Value *& A, Value *& B, const DataLayout & DL, const TargetLibraryInfo & TLI)

    Defined at line 1116 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • void AddAliasScopeMetadata (CallBase & CB, ValueToValueMapTy & VMap, const DataLayout & DL, AAResults * CalleeAAR, ClonedCodeInfo & InlinedFunctionInfo)

    If the inlined function has noalias arguments,

    then add new alias scopes for each noalias argument, tag the mapped noalias

    parameters with noalias metadata specifying the new scope, and tag all

    non-derived loads, stores and memory intrinsics with the new alias scopes.

    Defined at line 1116 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • std::pair<RTLIB::Libcall, CmpInst::Predicate> getFCMPLibcallDesc (Predicate Pred, unsigned int Size)

    Returns the corresponding libcall for the given Pred and

    the ICMP predicate that should be generated to compare with #0

    after the libcall.

    Defined at line 1117 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • void LLVMInitializeX86AsmPrinter ()

    Force static initialization.

    Defined at line 1118 of file llvm/lib/Target/X86/X86AsmPrinter.cpp

  • LLVMValueMetadataEntry * llvm_getMetadata (size_t * NumEntries, function_ref AccessMD)

    Defined at line 1118 of file llvm/lib/IR/Core.cpp

  • Value * getDbgIntrinsicValueImpl (LLVMContext & VMContext, Value * V)

    Defined at line 1119 of file llvm/lib/IR/DIBuilder.cpp

  • TypeSize getFrameSizeForShape (coro::Shape & Shape)

    Defined at line 1119 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool inferInitializes (Argument & A, Function & F)

    Defined at line 1119 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • Expected parseDWARF32StringOffsetsTableHeader (DWARFDataExtractor & DA, uint64_t Offset)

    Look for a DWARF32-formatted contribution to the string offsets table

    starting at a given offset and record it in a descriptor.

    Defined at line 1120 of file llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp

  • void performOperation (ArchiveOperation Operation, object::Archive * OldArchive, unique_ptr OldArchiveBuf, std::vector<NewArchiveMember> * NewMembers)

    Defined at line 1120 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void emitComments (const MachineInstr & MI, const MCSubtargetInfo * STI, raw_ostream & CommentOS)

    emitComments - Pretty-print comments for instructions.

    Defined at line 1122 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • unsigned int rotateModulo (unsigned int BitWidth, const APInt & rotateAmt)

    Calculate the rotate amount modulo the bit width.

    Defined at line 1123 of file llvm/lib/Support/APInt.cpp

  • optional getOpcodeOrIntrinsicID (const VPSingleDefRecipe * R)

    Get any instruction opcode or intrinsic ID data embedded in recipe

    Returns an optional pair, where the first element indicates whether it is

    an intrinsic ID.

    Defined at line 1123 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • const StringInit * interleaveStringList (const ListInit * List, const StringInit * Delim)

    Defined at line 1123 of file llvm/lib/TableGen/Record.cpp

  • bool isHoistableAndSinkableInst (Instruction & I)

    Return true if-and-only-if we know how to (mechanically) both hoist and

    sink a given instruction out of a loop. Does not address legality

    concerns such as aliasing or speculation safety.

    Defined at line 1124 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool MatchDiv (Value * E, Value *& Op, APInt & C, bool IsSigned)

    Matches division expression Op / C with the given signedness as indicated

    by IsSigned, where C is a constant. Returns the constant value in C and the

    other operand in Op. Returns true if such a match is found.

    Defined at line 1124 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateFileWithChecksum (LLVMDIBuilderRef Builder, const char * Filename, size_t FilenameLen, const char * Directory, size_t DirectoryLen,  ChecksumKind, const char * Checksum, size_t ChecksumLen, const char * Source, size_t SourceLen)

    Create a file descriptor to hold debugging information for a file.

    Parameters

    Builder The
    Filename File name.
    FilenameLen The length of the C string passed to
    Directory Directory.
    DirectoryLen The length of the C string passed to
    ChecksumKind The kind of checksum. eg MD5, SHA256
    Checksum The checksum.
    ChecksumLen The length of the checksum.
    Souce The embedded source.
    SourceLen The length of the source.

    Defined at line 1125 of file llvm/lib/IR/DebugInfo.cpp

  • void toggleKills (const MachineRegisterInfo & MRI, LiveRegUnits & LiveRegs, MachineInstr & MI, bool addToLiveRegs)

    Defined at line 1125 of file llvm/lib/CodeGen/ScheduleDAGInstrs.cpp

  • template <typename EntryType>
    Error writeDWARFLists (raw_ostream & OS, ArrayRef<DWARFYAML::ListTable<EntryType>> Tables, bool IsLittleEndian, bool Is64BitAddrSize)

    Defined at line 1125 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • void dumpPretty (StringRef Path)

    Defined at line 1125 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • OSType getOSTypeFromPlatform (PlatformType Type)

    Defined at line 1126 of file llvm/lib/MC/MCParser/DarwinAsmParser.cpp

  • bool canFoldInAddressingMode (GLoadStore * MI, const TargetLowering & TLI, MachineRegisterInfo & MRI)

    Return true if 'MI' is a load or a store that may be fold it's address

    operand into the load / store addressing mode.

    Defined at line 1127 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • void replaceFrameSizeAndAlignment (coro::Shape & Shape)

    Defined at line 1127 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • RegSubRegPair getNewSource (MachineRegisterInfo * MRI, const TargetInstrInfo * TII, RegSubRegPair Def, const int & RewriteMap, bool HandleMultipleSources)

    Given a

    and Def.SubReg pair, use

    to find

    the new source to use for rewrite. If

    is true and

    multiple sources for a given

    are found along the way, we found a

    PHI instructions that needs to be rewritten.

    TODO: HandleMultipleSources should be removed once we test PHI handling

    with coalescable copies.

    Defined at line 1127 of file llvm/lib/CodeGen/PeepholeOptimizer.cpp

  • void generateFlangClauseParserKindMap (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate the mapping for clauses between the parser class and the

    corresponding clause Kind

    Defined at line 1128 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • bool processPossibleNonNeg (PossiblyNonNegInst * I, LazyValueInfo * LVI)

    Defined at line 1129 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void VerifyFunctionInfo (const GsymReader & GR, uint64_t Addr, const FunctionInfo & FI)

    Defined at line 1130 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • void updateInstrProfileEntry (InstrProfileEntry & IFE, bool SetToHot, uint64_t HotInstrThreshold, uint64_t ColdInstrThreshold, float ZeroCounterThreshold)

    Either set all the counters in the instr profile entry

    to

    -1 / -2 /in order to drop the profile or scale up the

    counters in

    to be above hot / cold threshold. We use

    the ratio of zero counters in the profile of a function to

    decide the profile is helpful or harmful for performance,

    and to choose whether to scale up or drop it.

    Defined at line 1130 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void initializeDXILResourceTypeWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1131 of file llvm/lib/Analysis/DXILResource.cpp

  • bool hasUTF8ByteOrderMark (ArrayRef S)

    It is called byte order marker but the UTF-8 BOM is actually not affected

    by the host system's endianness.

    Defined at line 1131 of file llvm/lib/Support/CommandLine.cpp

  • bool isGlobalVarSummary (const ModuleSummaryIndex & Index, ValueInfo VI)

    Defined at line 1131 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • StringRef getDXILArchNameFromShaderModel (StringRef ShaderModelStr)

    Defined at line 1131 of file llvm/lib/TargetParser/Triple.cpp

  • bool isSafeToSinkLoad (Instruction * LoadI, Instruction * SI)

    Check if it is safe to move LoadI next to the SI.

    Conservatively assume it is safe only if there is no instruction

    modifying memory in-between the load and the select instruction.

    Defined at line 1133 of file llvm/lib/CodeGen/SelectOptimize.cpp

  • bool areInnerLoopExitPHIsSupported (Loop * InnerL, Loop * OuterL, SmallPtrSetImpl<PHINode *> & Reductions)

    We currently only support LCSSA PHI nodes in the inner loop exit, if their

    users are either reduction PHIs or PHIs outside the outer loop (which means

    the we are only interested in the final value after the loop).

    Defined at line 1133 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • bool isRealSpill (const MachineInstr & Def)

    Check if

    fully defines a VReg with an undefined value.

    If that's the case, that means the value of VReg is actually

    not relevant.

    Defined at line 1134 of file llvm/lib/CodeGen/InlineSpiller.cpp

  • bool replaceIfSimplePointerUse (const TargetTransformInfo & TTI, User * Inst, unsigned int AddrSpace, Value * OldV, Value * NewV)

    If

    is used as the pointer operand of a compatible memory operation

    replaces the pointer operand with NewV.

    This covers memory instructions with a single pointer operand that can have

    its address space changed by simply mutating the use to a new value.

    true the user replacement was made.

    Defined at line 1134 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • MCSymbol * emitGenDwarfRanges (MCStreamer * MCOS)

    When generating dwarf for assembly source files this emits the data for

    .debug_ranges section. We only emit one range list, which spans all of the

    executable sections of this file.

    Defined at line 1134 of file llvm/lib/MC/MCDwarf.cpp

  • int constantIntSortPredicate (ConstantInt *const * P1, ConstantInt *const * P2)

    Defined at line 1135 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • basic_string getEnumNameForToken (StringRef Str)

    Defined at line 1135 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • Value * canonicalizeSaturatedAddSigned (ICmpInst * Cmp, Value * TVal, Value * FVal, InstCombiner::BuilderTy & Builder)

    Defined at line 1135 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • LLVMValueMetadataEntry * LLVMInstructionGetAllMetadataOtherThanDebugLoc (LLVMValueRef Instr, size_t * NumEntries)

    Returns the metadata associated with an instruction value, but filters out

    all the debug locations.

    Defined at line 1136 of file llvm/lib/IR/Core.cpp

  • bool isOnlyMemoryAccess (const Instruction * I, const Loop * L, const MemorySSAUpdater & MSSAU)

    Return true if I is the only Instruction with a MemoryAccess in L.

    Defined at line 1136 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void ExpandBasePaths (StringRef BasePath, StringSaver & Saver, const char *& Arg)

    Substitute

    <CFGDIR

    > with the file's base path.

    Defined at line 1136 of file llvm/lib/Support/CommandLine.cpp

  • void VerifyFunctionInfoError (const GsymReader & GR, uint64_t Addr, basic_string ErrMessage)

    Defined at line 1137 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • Expected parseDWARFStringOffsetsTableHeader (DWARFDataExtractor & DA, DwarfFormat Format, uint64_t Offset)

    Defined at line 1137 of file llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp

  • Expected loadBinaryFormat (unique_ptr Bin, StringRef Arch, StringRef CompilationDir, object::BuildIDRef * BinaryID)

    Defined at line 1137 of file llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  • hash_code encodePHINodeData (PHINodeData & PND)

    Encode

    as an integer for easy lookup based on the argument location,

    the parent BasicBlock canonical numbering, and the canonical numbering of

    the values stored in the PHINode.

    Parameters

    PND - The data to hash.

    Defined at line 1138 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • bool isGlobalVarSummary (const ModuleSummaryIndex & Index, GlobalValue::GUID G)

    Defined at line 1138 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • bool optimizeOnceStoredGlobal (GlobalVariable * GV, Value * StoredOnceVal, const DataLayout & DL, function_ref<TargetLibraryInfo &(Function &)> GetTLI)

    Try to optimize globals based on the knowledge that only one value (besides

    its initializer) is ever stored to the global.

    Defined at line 1138 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • unsigned int getShiftAmount (uint64_t orgShiftAmount, APInt valueToShift)

    auxiliary function for shift operations

    Defined at line 1139 of file llvm/lib/ExecutionEngine/Interpreter/Execution.cpp

  • void DumpNodesr (raw_ostream & OS, const SDNode * N, unsigned int indent, const SelectionDAG * G, VisitedSDNodeSet & once)

    Defined at line 1139 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

  • Value * simplifyDiv (BinaryOps Opcode, Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q, unsigned int MaxRecurse)

    These are simplifications common to SDiv and UDiv.

    Defined at line 1140 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateModule (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentScope, const char * Name, size_t NameLen, const char * ConfigMacros, size_t ConfigMacrosLen, const char * IncludePath, size_t IncludePathLen, const char * APINotesFile, size_t APINotesFileLen)

    Creates a new descriptor for a module with the specified parent scope.

    Parameters

    Builder The
    ParentScope The parent scope containing this module declaration.
    Name Module name.
    NameLen The length of the C string passed to
    ConfigMacros A space-separated shell-quoted list of -D macro definitions as they would appear on a command line.
    ConfigMacrosLen The length of the C string passed to
    IncludePath The path to the module map file.
    IncludePathLen The length of the C string passed to
    APINotesFile The path to an API notes file for the module.
    APINotesFileLen The length of the C string passed to

    Defined at line 1141 of file llvm/lib/IR/DebugInfo.cpp

  • void PrintLinkOptHints (MachOObjectFile * O)

    Defined at line 1142 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isValidVisibilityForLinkage (unsigned int V, unsigned int L)

    Defined at line 1143 of file llvm/lib/AsmParser/LLParser.cpp

  • Intrinsic::ID shouldUpgradeNVPTXSharedClusterIntrinsic (Function * F, StringRef Name)

    Defined at line 1143 of file llvm/lib/IR/AutoUpgrade.cpp

  • MCSectionELF * getStaticStructorSection (MCContext & Ctx, bool UseInitArray, bool IsCtor, unsigned int Priority, const MCSymbol * KeySym)

    Defined at line 1143 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • bool processZExt (ZExtInst * ZExt, LazyValueInfo * LVI)

    Defined at line 1144 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • const StringInit * interleaveIntList (const ListInit * List, const StringInit * Delim)

    Defined at line 1144 of file llvm/lib/TableGen/Record.cpp

  • bool MulWillOverflow (APInt & C0, APInt & C1, bool IsSigned)

    Returns whether C0 * C1 with the given signedness overflows.

    Defined at line 1145 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • int performOperation (ArchiveOperation Operation)

    Defined at line 1145 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • unsigned int numGlobalVarSummaries (const ModuleSummaryIndex & Index, FunctionImporter::ExportSetTy & ExportSet)

    Return the number of global variable summaries in ExportSet.

    Defined at line 1146 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • FFlags getDecodedFFlags (uint64_t RawFlags)

    Defined at line 1146 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • VPValue * tryToFoldLiveIns (VPSingleDefRecipe & R, ArrayRef Operands, const DataLayout & DL, VPTypeAnalysis & TypeInfo)

    Try to fold

    using InstSimplifyFolder. Will succeed and return a

    non-nullptr VPValue for a handled opcode or intrinsic ID if corresponding

    are foldable live-ins.

    Defined at line 1146 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool isValidDLLStorageClassForLinkage (unsigned int S, unsigned int L)

    Defined at line 1147 of file llvm/lib/AsmParser/LLParser.cpp

  • void getBranchWeights (Instruction * TI, SmallVectorImpl<uint64_t> & Weights)

    Get Weights of a given terminator, the default weight is at the front

    of the vector. If TI is a conditional eq, we need to swap the branch-weight

    metadata.

    Defined at line 1147 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool processUIToFP (UIToFPInst * UIToFP, LazyValueInfo * LVI)

    Defined at line 1148 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • uint64_t sumEdgeCount (const ArrayRef<PGOUseEdge *> Edges)

    Sum up the count values for all the edges.

    Defined at line 1148 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • unsigned int getIndexedOpc (unsigned int LdStOpc)

    Defined at line 1148 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • int seterr (struct parse * , int )

    Defined at line 1150 of file llvm/lib/Support/regcomp.c

  • SmallVector buildBitSets (ArrayRef TypeIds, const DenseMap<GlobalTypeMember *, uint64_t> & GlobalLayout)

    Defined at line 1150 of file llvm/lib/Transforms/IPO/LowerTypeTests.cpp

  • void postSplitCleanup (Function & F)

    Defined at line 1151 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool isCCMPOrCTEST (InternalInstruction * insn)

    Defined at line 1151 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • SmallVectorImpl<DwarfCompileUnit::GlobalExpr> & sortGlobalExprs (SmallVectorImpl<DwarfCompileUnit::GlobalExpr> & GVEs)

    Sort and unique GVEs by comparing their fragment offset.

    Defined at line 1151 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void generateFlangClausesParser (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate the parser for the clauses.

    Defined at line 1151 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • bool isPrintableString (StringRef Data)

    Defined at line 1152 of file llvm/lib/MC/MCAsmStreamer.cpp

  • MemoryAccess * getClobberingMemoryAccess (MemorySSA & MSSA, BatchAAResults & BAA, SinkAndHoistLICMFlags & Flags, MemoryUseOrDef * MA)

    Defined at line 1152 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool processSIToFP (SIToFPInst * SIToFP, LazyValueInfo * LVI)

    Defined at line 1152 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void computeKnownBitsFromShiftOperator (const Operator * I, const APInt & DemandedElts, KnownBits & Known, KnownBits & Known2, const SimplifyQuery & Q, unsigned int Depth, function_ref<KnownBits (const KnownBits &, const KnownBits &, bool)> KF)

    Compute known bits from a shift operator, including those with a

    non-constant shift amount. Known is the output of this function. Known2 is a

    pre-allocated temporary with the same bit width as Known and on return

    contains the known bit of the shift value source. KF is an

    operator-specific function that, given the known-bits and a shift amount,

    compute the implied known-bits of the shift operator's result respectively

    for that shift amount. The results from calling KF are conservatively

    combined for all permitted shift amounts.

    Defined at line 1153 of file llvm/lib/Analysis/ValueTracking.cpp

  • void maybeSetDSOLocal (bool DSOLocal, GlobalValue & GV)

    If there was an explicit dso_local, update GV. In the absence of an explicit

    dso_local we keep the default value.

    Defined at line 1154 of file llvm/lib/AsmParser/LLParser.cpp

  • void LLVMOrcRTDyldObjectLinkingLayerRegisterJITEventListener (LLVMOrcObjectLayerRef RTDyldObjLinkingLayer, LLVMJITEventListenerRef Listener)

    Add the given listener to the given RTDyldObjectLinkingLayer.

    Note: Layer must be an RTDyldObjectLinkingLayer instance or

    behavior is undefined.

    Defined at line 1154 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateNameSpace (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentScope, const char * Name, size_t NameLen, LLVMBool ExportSymbols)

    Creates a new descriptor for a namespace with the specified parent scope.

    Parameters

    Builder The
    ParentScope The parent scope containing this module declaration.
    Name NameSpace name.
    NameLen The length of the C string passed to
    ExportSymbols Whether or not the namespace exports symbols, e.g. this is true of C++ inline namespaces.

    Defined at line 1154 of file llvm/lib/IR/DebugInfo.cpp

  • bool handleMemIntrinsicPtrUse (MemIntrinsic * MI, Value * OldV, Value * NewV)

    Update memory intrinsic uses that require more complex processing than

    simple memory instructions. These require re-mangling and may have multiple

    pointer operands.

    Defined at line 1155 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • LoopUnrollResult tryToUnrollLoop (Loop * L, DominatorTree & DT, LoopInfo * LI, ScalarEvolution & SE, const TargetTransformInfo & TTI, AssumptionCache & AC, OptimizationRemarkEmitter & ORE, BlockFrequencyInfo * BFI, ProfileSummaryInfo * PSI, bool PreserveLCSSA, int OptLevel, bool OnlyFullUnroll, bool OnlyWhenForced, bool ForgetAllSCEV, optional ProvidedCount, optional ProvidedThreshold, optional ProvidedAllowPartial, optional ProvidedRuntime, optional ProvidedUpperBound, optional ProvidedAllowPeeling, optional ProvidedAllowProfileBasedPeeling, optional ProvidedFullUnrollMaxCount, AAResults * AA)

    Defined at line 1157 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • optional getGVNForPHINode (OutlinableRegion & Region, PHINode * PN, DenseSet<BasicBlock *> & Blocks, unsigned int AggArgIdx)

    Create a special GVN for PHINodes that will be used outside of

    the region. We create a hash code based on the Canonical number of the

    parent BasicBlock, the canonical numbering of the values stored in the

    PHINode and the aggregate argument location. This is used to find whether

    this PHINode type has been given a canonical numbering already. If not, we

    assign it a value and store it for later use. The value is returned to

    identify different output schemes for the set of regions.

    Parameters

    Region - The region that is an output for.
    PN - The PHINode we are analyzing.
    Blocks - The blocks for the region we are analyzing.
    AggArgIdx - The argument will be stored into.

    Defined at line 1158 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • optional matchIntPart (Value * V)

    Match an extraction of bits from an integer.

    Defined at line 1159 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool areOuterLoopExitPHIsSupported (Loop * OuterLoop, Loop * InnerLoop)

    We currently support LCSSA PHI nodes in the outer loop exit, if their

    incoming values do not come from the outer loop latch or if the

    outer loop latch has a single predecessor. In that case, the value will

    be available if both the inner and outer loop conditions are true, which

    will still be true after interchanging. If we have multiple predecessor,

    that may not be the case, e.g. because the outer loop latch may be executed

    if the inner loop is not executed.

    Defined at line 1159 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • bool multiplyOverflows (const APInt & C1, const APInt & C2, APInt & Product, bool IsSigned)

    True if the multiply can not be expressed in an int this size.

    Defined at line 1160 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • OnDiskContent getContentFromHandle (const OnDiskDataAllocator & DataPool, ObjectHandle OH)

    Defined at line 1160 of file llvm/lib/CAS/OnDiskGraphDB.cpp

  • bool isType (const Metadata * MD)

    Defined at line 1161 of file llvm/lib/IR/Verifier.cpp

  • char toOctal (int X)

    Defined at line 1161 of file llvm/lib/MC/MCAsmStreamer.cpp

  • bool isScope (const Metadata * MD)

    Defined at line 1162 of file llvm/lib/IR/Verifier.cpp

  • cset * allocset (struct parse * )

    - allocset - allocate a set of characters for []

    Defined at line 1162 of file llvm/lib/Support/regcomp.c

  • bool isDINode (const Metadata * MD)

    Defined at line 1163 of file llvm/lib/IR/Verifier.cpp

  • LLVMOrcIRTransformLayerRef LLVMOrcLLJITGetIRTransformLayer (LLVMOrcLLJITRef J)

    Returns a non-owning reference to the LLJIT instance's IR transform layer.

    Defined at line 1163 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateFunction (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, const char * LinkageName, size_t LinkageNameLen, LLVMMetadataRef File, unsigned int LineNo, LLVMMetadataRef Ty, LLVMBool IsLocalToUnit, LLVMBool IsDefinition, unsigned int ScopeLine,  Flags, LLVMBool IsOptimized)

    Create a new descriptor for the specified subprogram.

    Parameters

    Builder The
    Scope Function scope.
    Name Function name.
    NameLen Length of enumeration name.
    LinkageName Mangled function name.
    LinkageNameLen Length of linkage name.
    File File where this variable is defined.
    LineNo Line number.
    Ty Function type.
    IsLocalToUnit True if this function is not externally visible.
    IsDefinition True if this is a function definition.
    ScopeLine Set to the beginning of the scope this starts
    Flags E.g.: These flags are used to emit dwarf attributes.
    IsOptimized True if optimization is ON.

    Defined at line 1162 of file llvm/lib/IR/DebugInfo.cpp

  • DenseMap collectImportStatistics (const ModuleSummaryIndex & Index, const FunctionImporter::ImportMapTy & ImportList)

    Compute import statistics for each source module in ImportList.

    Defined at line 1163 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void PrintByteList (StringRef Data, raw_ostream & OS, AsmCharLiteralSyntax ACLS)

    Defined at line 1163 of file llvm/lib/MC/MCAsmStreamer.cpp

  • bool isMDTuple (const Metadata * MD)

    Defined at line 1164 of file llvm/lib/IR/Verifier.cpp

  • unsigned int TypeSizeToSizeIndex (TypeSize TS)

    Defined at line 1164 of file llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

  • GVFlags getDecodedGVSummaryFlags (uint64_t RawFlags, uint64_t Version)

    Decode the flags for GlobalValue in the summary. The bits for each attribute:

    linkage: [0,4), notEligibleToImport: 4, live: 5, local: 6, canAutoHide: 7,

    visibility: [8, 10).

    Defined at line 1165 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void handleNoSuspendCoroutine (coro::Shape & Shape)

    Coroutine has no suspend points. Remove heap allocation for the coroutine

    frame if possible.

    Defined at line 1165 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • const char * LLVMOrcLLJITGetDataLayoutStr (LLVMOrcLLJITRef J)

    Get the LLJIT instance's default data layout string.

    This string is owned by the LLJIT instance and does not need to be freed

    by the caller.

    Defined at line 1167 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void cloneInstructionsIntoPredecessorBlockAndUpdateSSAUses (BasicBlock * BB, BasicBlock * PredBlock, ValueToValueMapTy & VMap)

    Defined at line 1167 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool isMultiple (const APInt & C1, const APInt & C2, APInt & Quotient, bool IsSigned)

    True if C1 is a multiple of C2. Quotient contains C1/C2.

    Defined at line 1168 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • KnownBits getKnownBitsFromAndXorOr (const Operator * I, const APInt & DemandedElts, const KnownBits & KnownLHS, const KnownBits & KnownRHS, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 1168 of file llvm/lib/Analysis/ValueTracking.cpp

  • Intrinsic::ID shouldUpgradeNVPTXBF16Intrinsic (StringRef Name)

    Defined at line 1168 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool isNF (InternalInstruction * insn)

    Defined at line 1170 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool processBinOp (BinaryOperator * BinOp, LazyValueInfo * LVI)

    Defined at line 1170 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • void AddRangeMetadata (LLVMContext & Context, MachineInstr * Load)

    Defined at line 1171 of file llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp

  • void initializeDXILResourceWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1172 of file llvm/lib/Analysis/DXILResource.cpp

  • void FindSingleUseMultiplyFactors (Value * V, SmallVectorImpl<Value *> & Factors)

    If V is a single-use multiply, recursively add its operands as factors,

    otherwise add V to the list of factors.

    Ops is the top-level list of add operands we're trying to factor.

    Defined at line 1172 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • void CheckForUseCFGHazard (Sequence SuccSSeq, const bool SuccSRRIKnownSafe, TopDownPtrState & S, bool & SomeSuccHasSame, bool & AllSuccsHaveSame, bool & NotAllSeqEqualButKnownSafe, bool & ShouldContinue)

    If we have a top down pointer in the S_Use state, make sure that there are

    no CFG hazards by checking the states of various bottom up pointers.

    Defined at line 1172 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • bool TryToShrinkGlobalToBoolean (GlobalVariable * GV, Constant * OtherVal)

    At this point, we have learned that the only two values ever stored into GV

    are its initializer and OtherVal. See if we can shrink the global into a

    boolean and select between the two values whenever it is used. This exposes

    the values to other scalar optimizations.

    Defined at line 1172 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • Error DebugACrash (BugDriver & BD, BugTester TestFn)

    DebugACrash - Given a predicate that determines whether a component crashes

    on a program, try to destructively reduce the program while still keeping

    the predicate true.

    Defined at line 1173 of file llvm/tools/bugpoint/CrashDebugger.cpp

  • const ListInit * ConcatListInits (const ListInit * LHS, const ListInit * RHS)

    Defined at line 1175 of file llvm/lib/TableGen/Record.cpp

  • Value * simplifyRem (BinaryOps Opcode, Value * Op0, Value * Op1, const SimplifyQuery & Q, unsigned int MaxRecurse)

    These are simplifications common to SRem and URem.

    Defined at line 1175 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * extractIntPart (const IntPart & P, IRBuilderBase & Builder)

    Materialize an extraction of bits from an integer in IR.

    Defined at line 1177 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void printrWithDepthHelper (raw_ostream & OS, const SDNode * N, const SelectionDAG * G, unsigned int depth, unsigned int indent)

    Defined at line 1177 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp

  • const char * getAMDProcessorTypeAndSubtype (unsigned int Family, unsigned int Model, const unsigned int * Features, unsigned int * Type, unsigned int * Subtype)

    Defined at line 1177 of file llvm/lib/TargetParser/Host.cpp

  • void emitKill (const MachineInstr * MI, AsmPrinter & AP)

    Defined at line 1178 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • bool canUnwindPastLandingPad (const LandingPadInst * LP, bool IncludePhaseOneUnwind)

    Defined at line 1178 of file llvm/lib/IR/Instruction.cpp

  • void initializeModuleSummaryIndexWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1181 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • bool checkVariableImport (const ModuleSummaryIndex & Index, FunctionImporter::ImportListsTy & ImportLists, DenseMap<StringRef, FunctionImporter::ExportSetTy> & ExportLists)

    Defined at line 1181 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void buildDepSet (LazyRandomTypeCollection & Types, ArrayRef Indices, std::map<TypeIndex, CVType> & DepSet)

    Defined at line 1184 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • bool coalescable (const LiveRange::Segment & A, const LiveRange::Segment & B)

    Determine if A and B should be coalesced.

    Defined at line 1185 of file llvm/lib/CodeGen/LiveInterval.cpp

  • unsigned int getDiscriminatorMask ()

    Defined at line 1187 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • GVarFlags getDecodedGVarFlags (uint64_t RawFlags)

    Decode the flags for GlobalVariable in the summary

    Defined at line 1187 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • optional getKnownSign (Value * Op, const SimplifyQuery & SQ)

    Defined at line 1187 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • void printBBName (raw_ostream & out, const BasicBlock * BB)

    Defined at line 1188 of file llvm/lib/Passes/StandardInstrumentations.cpp

  • Value * likeBitCastFromVector (InstCombinerImpl & IC, Value * V)

    Look for extractelement/insertvalue sequence that acts like a bitcast.

    For example, if we have:

    %E0 = extractelement

    <

    2 x double> %U, i32 0

    %V0 = insertvalue [2 x double] undef, double %E0, 0

    %E1 = extractelement

    <

    2 x double> %U, i32 1

    %V1 = insertvalue [2 x double] %V0, double %E1, 1

    and the layout of a

    <

    2 x double> is isomorphic to a [2 x double],

    then %V1 can be safely approximated by a conceptual "bitcast" of %U.

    Note that %U may contain non-undef values where %V1 has undef.

    Defined at line 1188 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • Value * OptimizeAndOrXor (unsigned int Opcode, SmallVectorImpl<ValueEntry> & Ops)

    Optimize a series of operands to an 'and', 'or', or 'xor' instruction.

    This optimizes based on identities. If it can be reduced to a single Value,

    it is returned, otherwise the Ops list is mutated as necessary.

    Defined at line 1188 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • Value * foldIDivShl (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Defined at line 1189 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • void writeHexDigit (char * Buffer, uint8_t Digit)

    Defined at line 1190 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • void IncorporateFunctionInfoGlobalBBIDs (const Function * F, DenseMap<const BasicBlock *, unsigned int> & IDMap)

    Defined at line 1190 of file llvm/lib/Bitcode/Writer/ValueEnumerator.cpp

  • void emitFakeUse (const MachineInstr * MI, AsmPrinter & AP)

    Defined at line 1191 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • unsigned int getNsectForSegSect (MachOObjectFile * Obj)

    getNsectForSegSect() is used to implement the Mach-O "-s segname sectname"

    option to dump only those symbols from that section in a Mach-O file.

    It is called once for each Mach-O file from getSymbolNamesFromObject()

    to get the section number for that named section from the command line

    arguments. It returns the section number for that section in the Mach-O

    file or zero it is not present.

    Defined at line 1192 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool areInnerLoopLatchPHIsSupported (Loop * OuterLoop, Loop * InnerLoop)

    In case of multi-level nested loops, it may occur that lcssa phis exist in

    the latch of InnerLoop, i.e., when defs of the incoming values are further

    inside the loopnest. Sometimes those incoming values are not available

    after interchange, since the original inner latch will become the new outer

    latch which may have predecessor paths that do not include those incoming

    values.

    TODO: Handle transformation of lcssa phis in the InnerLoop latch in case of

    multi-level loop nests.

    Defined at line 1192 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • Instruction * getInsertPointForUses (Instruction * User, Value * Def, DominatorTree * DT, LoopInfo * LI)

    Determine the insertion point for this user. By default, insert immediately

    before the user. SCEVExpander or LICM will hoist loop invariants out of the

    loop. For PHI nodes, there may be multiple uses, so compute the nearest

    common dominator for the incoming blocks. A nullptr can be returned if no

    viable location is found: it may happen if User is a PHI and Def only comes

    to this PHI from unreachable blocks.

    Defined at line 1192 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp

  • void adjustInstrProfile (std::unique_ptr<WriterContext> & WC, std::unique_ptr<sampleprof::SampleProfileReader> & Reader, unsigned int SupplMinSizeThreshold, float ZeroCounterThreshold, unsigned int InstrProfColdThreshold)

    Adjust the instr profile in

    based on the sample profile in

    Defined at line 1193 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • pair getDecodedHotnessCallEdgeInfo (uint64_t RawFlags)

    Defined at line 1194 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • int getInstructionID (struct InternalInstruction * insn, const MCInstrInfo * mii)

    Determine the ID of an instruction, consuming the ModR/M byte as appropriate

    for extended and escape opcodes. Determines the attributes and context for

    the instruction before doing so.

    Defined at line 1194 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • void outputHex (OutputBuffer & OB, unsigned int C)

    Defined at line 1195 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • void computeBaseDerivedRelocateMap (const SmallVectorImpl<GCRelocateInst *> & AllRelocateCalls, int & RelocateInstMap)

    Computes a map of base pointer relocation instructions to corresponding

    derived pointer relocation instructions given a vector of all relocate calls

    Defined at line 1197 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • optional CheckLargerCands (IRSimilarityCandidate & CandA, IRSimilarityCandidate & CandB, DenseMap<unsigned int, DenseSet<IRSimilarityCandidate *>> & IndexToIncludedCand, DenseMap<IRSimilarityCandidate *, unsigned int> & CandToGroup)

    Look for larger IRSimilarityCandidates From the previously matched

    IRSimilarityCandidates that fully contain

    or

    If there is

    an overlap, return a pair of structurally similar, larger

    IRSimilarityCandidates.

    Parameters

    CandA [in] - The first candidate we are trying to determine the structure of.
    CandB [in] - The second candidate we are trying to determine the structure of.
    IndexToIncludedCand [in] - Mapping of index of the an instruction in a circuit to the IRSimilarityCandidates that include this instruction.
    CandToOverallGroup [in] - Mapping of IRSimilarityCandidate to a number representing the structural group assigned to it.

    Defined at line 1198 of file llvm/lib/Analysis/IRSimilarityIdentifier.cpp

  • bool hasCallsInBlockBetween (iterator_range<BasicBlock::iterator> R)

    SimplifySuspendPoint needs to check that there is no calls between

    coro_save and coro_suspend, since any of the calls may potentially resume

    the coroutine and if that is the case we cannot eliminate the suspend point.

    Defined at line 1199 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • int GetSegmentNames (object::MachOObjectFile * O)

    Defined at line 1199 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void declare_symbols (LLVMModuleRef Src, LLVMModuleRef M)

    Defined at line 1199 of file llvm/tools/llvm-c-test/echo.cpp

  • void dumpFullTypeStream (LinePrinter & Printer, LazyRandomTypeCollection & Types, TypeReferenceTracker * RefTracker, uint32_t NumTypeRecords, uint32_t NumHashBuckets, FixedStreamArray HashValues, TpiStream * Stream, bool Bytes, bool Extras)

    Defined at line 1200 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • Error checkTwoLevelHintsCommand (const MachOObjectFile & Obj, const MachOObjectFile::LoadCommandInfo & Load, uint32_t LoadCommandIndex, const char ** LoadCmd, std::list<MachOElement> & Elements)

    Defined at line 1200 of file llvm/lib/Object/MachOObjectFile.cpp

  • bool isEFLAGSDefLive (const MachineInstr & MI)

    Returns true if the MI has EFLAGS as a register def operand and it's live,

    otherwise it returns false

    Defined at line 1201 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp

  • optional getKnownSignOrZero (Value * Op, const SimplifyQuery & SQ)

    Defined at line 1201 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • void initializeDXILResourceBindingWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1202 of file llvm/lib/Analysis/DXILResource.cpp

  • void getDecodedRelBFCallEdgeInfo (uint64_t RawFlags, uint64_t & RelBF, bool & HasTailCall)

    Defined at line 1202 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • LLVMValueRef getMDNodeOperandImpl (LLVMContext & Context, const MDNode * N, unsigned int Index)

    --.. Operations on Users .................................................--

    Defined at line 1202 of file llvm/lib/IR/Core.cpp

  • bool processAnd (BinaryOperator * BinOp, LazyValueInfo * LVI)

    Defined at line 1204 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • Mapper * getAsMapper (void * pImpl)

    Defined at line 1207 of file llvm/lib/Transforms/Utils/ValueMapper.cpp

  • uint8_t getElfSymbolType (const ObjectFile & Obj, const SymbolRef & Sym)

    Defined at line 1207 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void initializeStackSafetyInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1208 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp

  • bool isOpDefinedInBlock (Value * Op, BasicBlock * BB)

    Return true if Op is an instruction defined in the given block.

    Defined at line 1209 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • bool isEFLAGSLive (MachineBasicBlock & MBB, int I, const TargetRegisterInfo & TRI)

    Defined at line 1209 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp

  • void CheckForCanReleaseCFGHazard (Sequence SuccSSeq, const bool SuccSRRIKnownSafe, TopDownPtrState & S, bool & SomeSuccHasSame, bool & AllSuccsHaveSame, bool & NotAllSeqEqualButKnownSafe)

    If we have a Top Down pointer in the S_CanRelease state, make sure that

    there are no CFG hazards by checking the states of various bottom up

    pointers.

    Defined at line 1209 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • bool emitDebugValueComment (const MachineInstr * MI, AsmPrinter & AP)

    emitDebugValueComment - This method handles the target-independent form

    of DBG_VALUE, returning true if it was able to do so. A false return

    means the target will need to handle MI in EmitInstruction.

    Defined at line 1209 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • bool isLifetimeStart (const Instruction * Inst)

    Defined at line 1210 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • VisibilityTypes getDecodedVisibility (unsigned int Val)

    Defined at line 1210 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Value * canonicalizeSaturatedAdd (ICmpInst * Cmp, Value * TVal, Value * FVal, InstCombiner::BuilderTy & Builder)

    Defined at line 1210 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • Value * concatenateTwoVectors (IRBuilderBase & Builder, Value * V1, Value * V2)

    A helper function for concatenating vectors. This function concatenates two

    vectors having the same element type. If the second vector has fewer

    elements than the first, it is padded with undefs.

    Defined at line 1210 of file llvm/lib/Analysis/VectorUtils.cpp

  • bool hasCallsInBlocksBetween (BasicBlock * SaveBB, BasicBlock * ResDesBB)

    Defined at line 1211 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • Value * simplifySDivInst (Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an SDiv, see if we can fold the result.

    If not, this returns null.

    Defined at line 1212 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • unsigned int getNsectInMachO (MachOObjectFile & Obj, BasicSymbolRef Sym)

    getNsectInMachO() is used to implement the Mach-O "-s segname sectname"

    option to dump only those symbols from that section in a Mach-O file.

    It is called once for each symbol in a Mach-O file from

    getSymbolNamesFromObject() and returns the section number for that symbol

    if it is in a section, else it returns 0.

    Defined at line 1212 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • LaneBitmask findUseBetween (VirtRegOrUnit VRegOrUnit, LaneBitmask LastUseMask, SlotIndex PriorUseIdx, SlotIndex NextUseIdx, const MachineRegisterInfo & MRI, const LiveIntervals * LIS)

    Helper to find a vreg use between two indices [PriorUseIdx, NextUseIdx).

    The query starts with a lane bitmask which gets lanes/bits removed for every

    use we find.

    Defined at line 1213 of file llvm/lib/CodeGen/RegisterPressure.cpp

  • void PrintChainedFixupsHeader (const MachO::dyld_chained_fixups_header & H)

    Defined at line 1213 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool signBitMustBeTheSame (Value * Op0, Value * Op1, const SimplifyQuery & SQ)

    Return true if two values

    and

    are known to have the same sign.

    Defined at line 1214 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • bool allowPGOOutlining (RunOutliner RunOutlinerMode, const ProfileSummaryInfo * PSI, const BlockFrequencyInfo * BFI, MachineBasicBlock & MBB)

    Defined at line 1214 of file llvm/lib/CodeGen/MachineOutliner.cpp

  • void initializeStackSafetyGlobalInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1215 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp

  • void initializeLoopInfoWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1216 of file llvm/lib/Analysis/LoopInfo.cpp

  • bool sectionWithinSegment (const SectionBase & Sec, const Segment & Seg)

    Returns true IFF a section is wholly inside the range of a segment

    Defined at line 1216 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • void simplifyRecipe (VPSingleDefRecipe * Def, VPTypeAnalysis & TypeInfo)

    Try to simplify VPSingleDefRecipe

    Defined at line 1216 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool liesBetween (const Instruction * From, Instruction * Between, const Instruction * To, const DominatorTree * DT)

    Assuming To can be reached from both From and Between, does Between lie on

    every path from From to To?

    Defined at line 1218 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • Value * getValueFwdRef (BitcodeReaderValueList & ValueList, unsigned int Idx, Type * Ty, unsigned int TyID)

    Defined at line 1218 of file llvm/lib/Bitcode/Reader/MetadataLoader.cpp

  • DLLStorageClassTypes getDecodedDLLStorageClass (unsigned int Val)

    Defined at line 1219 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void eraseDebugIntrinsicsWithNonLocalRefs (Function & F)

    Erase debug info intrinsics which refer to values in

    but aren't in

    Defined at line 1219 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • void dumpPartialTypeStream (LinePrinter & Printer, LazyRandomTypeCollection & Types, TypeReferenceTracker * RefTracker, TpiStream & Stream, ArrayRef TiList, bool Bytes, bool Extras, bool Deps)

    Defined at line 1219 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • void emitDirectivesClangImpl (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate the implementation section for the enumeration in the directive

    language

    Defined at line 1221 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • void freeset (struct parse * , cset * )

    - freeset - free a now-unused set

    Defined at line 1221 of file llvm/lib/Support/regcomp.c

  • void runMRIScript ()

    Defined at line 1183 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void disallowOrcOptions ()

    Defined at line 1187 of file llvm/tools/lli/lli.cpp

  • Expected launchRemote ()

    Defined at line 1206 of file llvm/tools/lli/lli.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned int Line, unsigned int Column)

    Create a descriptor for a lexical block with the specified parent context.

    Parameters

    Builder The
    Scope Parent lexical block.
    File Source file.
    Line The line in the source file.
    Column The column in the source file.

    Defined at line 1177 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned int Discriminator)

    Create a descriptor for a lexical block with a new file attached.

    Parameters

    Builder The
    Scope Lexical block.
    File Source file.
    Discriminator DWARF path discriminator value.

    Defined at line 1185 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromNamespace (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef NS, LLVMMetadataRef File, unsigned int Line)

    Create a descriptor for an imported namespace. Suitable for e.g. C++

    using declarations.

    Parameters

    Builder The
    Scope The scope this module is imported into
    File File where the declaration is located.
    Line Line number of the declaration.

    Defined at line 1195 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromAlias (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef ImportedEntity, LLVMMetadataRef File, unsigned int Line, LLVMMetadataRef * Elements, unsigned int NumElements)

    Create a descriptor for an imported module that aliases another

    imported entity descriptor.

    Parameters

    Builder The
    Scope The scope this module is imported into
    ImportedEntity Previous imported entity to alias.
    File File where the declaration is located.
    Line Line number of the declaration.
    Elements Renamed elements.
    NumElements Number of renamed elements.

    Defined at line 1207 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateImportedModuleFromModule (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef M, LLVMMetadataRef File, unsigned int Line, LLVMMetadataRef * Elements, unsigned int NumElements)

    Create a descriptor for an imported module.

    Parameters

    Builder The
    Scope The scope this module is imported into
    M The module being imported here
    File File where the declaration is located.
    Line Line number of the declaration.
    Elements Renamed elements.
    NumElements Number of renamed elements.

    Defined at line 1220 of file llvm/lib/IR/DebugInfo.cpp

  • template <typename T>
    bool hasCalleePopSRet (const SmallVectorImpl<T> & Args, const X86Subtarget & Subtarget)

    Determines whether Args, either a set of outgoing arguments to a call, or a

    set of incoming args of a call, contains an sret pointer that the callee

    pops

    Defined at line 1221 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • void outputEscapedChar (OutputBuffer & OB, unsigned int C)

    Defined at line 1221 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • void dumpSymbolsFromDLInfoMachO (MachOObjectFile & MachO, int & SymbolList)

    Defined at line 1222 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • Instruction * canonicalizeLowbitMask (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Fold

    (1

    <

    <

    NBits) - 1

    Into:

    ~(-(1

    <

    <

    NBits))

    Because a 'not' is better for bit-tracking analysis and other transforms

    than an 'add'. The new shl is always nsw, and is nuw if old `and` was.

    Defined at line 1223 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • void initializeEarlyIfPredicatorPassOnce (PassRegistry & Registry)

    Defined at line 1224 of file llvm/lib/CodeGen/EarlyIfConversion.cpp

  • Value * foldAbsDiff (ICmpInst * Cmp, Value * TVal, Value * FVal, InstCombiner::BuilderTy & Builder)

    Try to match patterns with select and subtract as absolute difference.

    Defined at line 1225 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • BasicBlock * buildClonedLoopBlocks (Loop & L, BasicBlock * LoopPH, BasicBlock * SplitBB, ArrayRef ExitBlocks, BasicBlock * ParentBB, BasicBlock * UnswitchedSuccBB, BasicBlock * ContinueSuccBB, const SmallDenseMap<BasicBlock *, BasicBlock *, 16> & DominatingSucc, ValueToValueMapTy & VMap, SmallVectorImpl<DominatorTree::UpdateType> & DTUpdates, AssumptionCache & AC, DominatorTree & DT, LoopInfo & LI, MemorySSAUpdater * MSSAU, ScalarEvolution * SE)

    Build the cloned blocks for an unswitched copy of the given loop.

    The cloned blocks are inserted before the loop preheader (`LoopPH`) and

    after the split block (`SplitBB`) that will be used to select between the

    cloned and original loop.

    This routine handles cloning all of the necessary loop blocks and exit

    blocks including rewriting their instructions and the relevant PHI nodes.

    Any loop blocks or exit blocks which are dominated by a different successor

    than the one for this clone of the loop blocks can be trivially skipped. We

    use the `DominatingSucc` map to determine whether a block satisfies that

    property with a simple map lookup.

    It also correctly creates the unconditional branch in the cloned

    unswitched parent block to only point at the unswitched successor.

    This does not handle most of the necessary updates to `LoopInfo`. Only exit

    block splitting is correctly reflected in `LoopInfo`, essentially all of

    the cloned blocks (and their loops) are left without full `LoopInfo`

    updates. This also doesn't fully update `DominatorTree`. It adds the cloned

    blocks to them but doesn't create the cloned `DominatorTree` structure and

    instead the caller must recompute an accurate DT. It *does* correctly

    update the `AssumptionCache` provided in `AC`.

    Defined at line 1226 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool processTrunc (TruncInst * TI, LazyValueInfo * LVI)

    Defined at line 1227 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • Instruction * moveAddAfterMinMax (IntrinsicInst * II, InstCombiner::BuilderTy & Builder)

    Try to canonicalize min/max(X + C0, C1) as min/max(X, C1 - C0) + C0. This

    can trigger other combines.

    Defined at line 1227 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • const Instruction * findMayClobberedPtrAccess (LoadInst * Load, const DominatorTree * DT)

    Defined at line 1227 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • Value * simplifyUDivInst (Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for a UDiv, see if we can fold the result.

    If not, this returns null.

    Defined at line 1228 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void UpdatePHINodes (BasicBlock * OrigBB, BasicBlock * NewBB, ArrayRef Preds, BranchInst * BI, bool HasLoopExit)

    Update the PHI nodes in OrigBB to include the values coming from NewBB.

    This also updates AliasAnalysis, if available.

    Defined at line 1228 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • bool getDecodedDSOLocal (unsigned int Val)

    Defined at line 1229 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • template <class ELFT>
    void addDynamicElfSymbols (const ELFObjectFile<ELFT> & Obj, int & AllSymbols)

    Defined at line 1229 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • use_iterator_impl skipToNextUser (use_iterator_impl I, use_iterator_impl End)

    Defined at line 1230 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp

  • bool getGEPSmallConstantIntOffsetV (GetElementPtrInst * GEP, SmallVectorImpl<Value *> & OffsetV)

    Accepts a GEP and extracts the operands into a vector provided they're all

    small integer constants

    Defined at line 1232 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • void emitDirectivesFlangImpl (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate the implementation section for the enumeration in the directive

    language

    Defined at line 1232 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateImportedDeclaration (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, LLVMMetadataRef Decl, LLVMMetadataRef File, unsigned int Line, const char * Name, size_t NameLen, LLVMMetadataRef * Elements, unsigned int NumElements)

    Create a descriptor for an imported function, type, or variable. Suitable

    for e.g. FORTRAN-style USE declarations.

    Parameters

    Builder The DIBuilder.
    Scope The scope this module is imported into.
    Decl The declaration (or definition) of a function, type, or variable.
    File File where the declaration is located.
    Line Line number of the declaration.
    Name A name that uniquely identifies this imported declaration.
    NameLen The length of the C string passed to
    Elements Renamed elements.
    NumElements Number of renamed elements.

    Defined at line 1233 of file llvm/lib/IR/DebugInfo.cpp

  • SDValue SaturateWidenedDIVFIX (SDValue V, SDLoc & dl, unsigned int SatW, bool Signed, const TargetLowering & TLI, SelectionDAG & DAG)

    Defined at line 1234 of file llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp

  • bool compareByScalarFnName (const VecDesc & LHS, const VecDesc & RHS)

    Defined at line 1235 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • bool matchICmpOperand (APInt & Offset, Value * LHS, Value * Val, Predicate Pred)

    Defined at line 1235 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • optional getDecodedCodeModel (unsigned int Val)

    Defined at line 1237 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Value * createAndInstr (ilist_iterator_w_bits InsertBefore, Value * Opnd, const APInt & ConstOpnd)

    Helper function of CombineXorOpnd(). It creates a bitwise-and

    instruction with the given two operands, and return the resulting

    instruction. There are two special cases: 1) if the constant operand is 0,

    it will return NULL. 2) if the constant is ~0, the symbolic operand will

    be returned.

    Defined at line 1238 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • const SCEV * getSignedOverflowLimitForStep (const SCEV * Step, ICmpInst::Predicate * Pred, ScalarEvolution * SE)

    Get the limit of a recurrence such that incrementing by Step cannot cause

    signed overflow as long as the value of the recurrence within the

    loop does not exceed this limit before incrementing.

    Defined at line 1238 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void fixupDebugInfoPostExtraction (Function & OldFunc, Function & NewFunc, CallInst & TheCall, const SetVector<Value *> & Inputs, ArrayRef NewValues)

    Fix up the debug info in the old and new functions. Following changes are

    done.

    1. If a debug record points to a value that has been replaced, update the

    record to use the new value.

    2. If an Input value that has been replaced was used as a location of a

    debug record in the Parent function, then materealize a similar record in

    the new function.

    3. Point line locations and debug intrinsics to the new subprogram scope

    4. Remove intrinsics which point to values outside of the new function.

    Defined at line 1238 of file llvm/lib/Transforms/Utils/CodeExtractor.cpp

  • bool compareByVectorFnName (const VecDesc & LHS, const VecDesc & RHS)

    Defined at line 1239 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • bool isLoadCommandObsolete (uint32_t cmd)

    Returns true if the libObject code does not support the load command and its

    contents. The cmd value it is treated as an unknown load command but with

    an error message that says the cmd value is obsolete.

    Defined at line 1239 of file llvm/lib/Object/MachOObjectFile.cpp

  • KnownBits computeKnownBitsForHorizontalOperation (const Operator * I, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth, const function_ref<KnownBits (const KnownBits &, const KnownBits &)> KnownBitsFunc)

    Defined at line 1239 of file llvm/lib/Analysis/ValueTracking.cpp

  • void addArgumentAttrs (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed, bool SkipInitializes)

    Deduce nocapture attributes for the SCC.

    Defined at line 1239 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • Value * simplifySRemInst (Value * Op0, Value * Op1, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an SRem, see if we can fold the result.

    If not, this returns null.

    Defined at line 1240 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool hasCallsBetween (Instruction * Save, Instruction * ResumeOrDestroy)

    Defined at line 1240 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • Instruction * foldToUnsignedSaturatedAdd (BinaryOperator & I)

    Defined at line 1241 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • bool consumeNVVMPtrAddrSpace (StringRef & Name)

    Defined at line 1242 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool compareWithScalarFnName (const VecDesc & LHS, StringRef S)

    Defined at line 1243 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • void initializeImmutableModuleSummaryIndexWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1244 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp

  • bool segmentOverlapsSegment (const Segment & Child, const Segment & Parent)

    Returns true IFF a segment's original offset is inside of another segment's

    range.

    Defined at line 1246 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • Value * getAISize (LLVMContext & Context, Value * Amt)

    ===----------------------------------------------------------------------===//

    AllocaInst Implementation

    ===----------------------------------------------------------------------===//

    Defined at line 1246 of file llvm/lib/IR/Instructions.cpp

  • bool simplifyRelocatesOffABase (GCRelocateInst * RelocatedBase, const SmallVectorImpl<GCRelocateInst *> & Targets)

    Takes a RelocatedBase (base pointer relocation instruction) and Targets to

    replace, computes a replacement, and affects it.

    Defined at line 1248 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool upgradeIntrinsicFunction1 (Function * F, Function *& NewFn, bool CanUpgradeDebugIntrinsicsToRecords)

    Defined at line 1248 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool combineStoreToValueType (InstCombinerImpl & IC, StoreInst & SI)

    Combine stores to match the type of value being stored.

    The core idea here is that the memory does not have any intrinsic type and

    where we can we should match the type of a store to the type of value being

    stored.

    However, this routine must never change the width of a store or the number of

    stores as that would introduce a semantic change. This combine is expected to

    be a semantic no-op which just allows stores to more closely model the types

    of their incoming values.

    Currently, we also refuse to change the precise type used for an atomic or

    volatile store. This is debatable, and might be reasonable to change later.

    However, it is risky in case some backend or other part of LLVM is relying

    on the exact type stored to select appropriate atomic operations.

    Defined at line 1249 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • void printSpillReloadChain (int & SpillChain, int & ReloadChain, MachineInstr * Leader)

    Defined at line 1250 of file llvm/lib/CodeGen/MachineCopyPropagation.cpp

  • Error emitDebugSectionImpl (const DWARFYAML::Data & DI, StringRef Sec, StringMap<std::unique_ptr<MemoryBuffer>> & OutputBuffers)

    Defined at line 1250 of file llvm/lib/ObjectYAML/DWARFEmitter.cpp

  • template <typename ItTy, typename EltTy>
    bool rangeOnlyContains (ItTy Start, ItTy End, EltTy Elt)

    ===----------------------------------------------------------------------===//

    ConstantXXX Classes

    ===----------------------------------------------------------------------===//

    Defined at line 1252 of file llvm/lib/IR/Constants.cpp

  • void parseArgs (int Argc, char ** Argv)

    Defined at line 1252 of file llvm/tools/sancov/sancov.cpp

  • bool compareSegmentsByOffset (const Segment * A, const Segment * B)

    Defined at line 1253 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • void generateClauseClassMacro (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Defined at line 1253 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • ThreadLocalMode getDecodedThreadLocalMode (unsigned int Val)

    Defined at line 1254 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool runImpl (Function & F, LazyValueInfo * LVI, DominatorTree * DT, const SimplifyQuery & SQ)

    Defined at line 1255 of file llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  • SDValue CreateCopyOfByValArgument (SDValue Src, SDValue Dst, SDValue Chain, ArgFlagsTy Flags, SelectionDAG & DAG, const SDLoc & dl)

    Make a copy of an aggregate at address specified by "Src" to address

    "Dst" with size and alignment information specified by the specific

    parameter attribute. The copy will be passed as a byval function parameter.

    Defined at line 1256 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • bool isArchSpecifierInvalidOrMissing (Binary * Bin, StringRef Arch)

    Determine whether

    is invalid or empty, given

    Defined at line 1256 of file llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp

  • void PrintChainedFixupsSegment (const ChainedFixupsSegment & Segment, StringRef SegName)

    Defined at line 1257 of file llvm/tools/llvm-objdump/MachODump.cpp

  • const SCEV * getUnsignedOverflowLimitForStep (const SCEV * Step, ICmpInst::Predicate * Pred, ScalarEvolution * SE)

    Get the limit of a recurrence such that incrementing by Step cannot cause

    unsigned overflow as long as the value of the recurrence within the loop does

    not exceed this limit before incrementing.

    Defined at line 1258 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • Align computeAllocaDefaultAlign (Type * Ty, InsertPosition Pos)

    Defined at line 1258 of file llvm/lib/IR/Instructions.cpp

  • void addDynamicElfSymbols (const ELFObjectFileBase & Obj, int & AllSymbols)

    Defined at line 1258 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void findExtractedOutputToOverallOutputMapping (Module & M, OutlinableRegion & Region, SetVector<Value *> & Outputs)

    Create a mapping of the output arguments for the

    to the output

    arguments of the overall outlined function.

    Parameters

    Region [in,out] - The region of code to be analyzed.
    Outputs [in] - The values found by the code extractor.

    Defined at line 1259 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • template <typename SequentialTy, typename ElementTy>
    Constant * getIntSequenceIfElementsMatch (ArrayRef V)

    Defined at line 1260 of file llvm/lib/IR/Constants.cpp

  • Value * simplifyURemInst (Value * Op0, Value * Op1, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for a URem, see if we can fold the result.

    If not, this returns null.

    Defined at line 1261 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SDValue earlyExpandDIVFIX (SDNode * N, SDValue LHS, SDValue RHS, unsigned int Scale, const TargetLowering & TLI, SelectionDAG & DAG, unsigned int SatW)

    Defined at line 1262 of file llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp

  • bool isContiguous (const ConstantRange & A, const ConstantRange & B)

    Defined at line 1263 of file llvm/lib/IR/Metadata.cpp

  • bool IsEmptyBlock (MachineBasicBlock * MBB)

    Blocks should be considered empty if they contain only debug info;

    else the debug info would affect codegen.

    Defined at line 1265 of file llvm/lib/CodeGen/BranchFolding.cpp

  • UnnamedAddr getDecodedUnnamedAddrType (unsigned int Val)

    Defined at line 1265 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool canBeMerged (const ConstantRange & A, const ConstantRange & B)

    Defined at line 1267 of file llvm/lib/IR/Metadata.cpp

  • Instruction * combineAddSubWithShlAddSub (InstCombiner::BuilderTy & Builder, const BinaryOperator & I)

    Transform:

    (add A, (shl (neg B), Y))

    -> (sub A, (shl B, Y))

    Defined at line 1267 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • bool simplifySuspendPoint (CoroSuspendInst * Suspend, CoroBeginInst * CoroBegin)

    If a SuspendIntrin is preceded by Resume or Destroy, we can eliminate the

    suspend point and replace it with nornal control flow.

    Defined at line 1267 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool canGuaranteeTCO (CallingConv::ID CC)

    Return true if the calling convention is one that we can guarantee TCO for.

    Defined at line 1268 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • StringRef getOpcodeString (KindTy Kind)

    Defined at line 1268 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp

  • void replaceExitCond (BranchInst * BI, Value * NewCond, SmallVectorImpl<WeakTrackingVH> & DeadInsts)

    Defined at line 1269 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • unsigned int countTrailingNullBytes (const uint8_t * StringBytes, int Length)

    Defined at line 1269 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • unsigned int calculateSetFPREG (uint64_t SPAdjust)

    Defined at line 1270 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • optional getDagArgNoByKey (const DagInit * Dag, const Init * Key, std::string & Error)

    Defined at line 1270 of file llvm/lib/TableGen/Record.cpp

  • bool IsBranchOnlyBlock (MachineBasicBlock * MBB)

    Blocks with only debug info and branches should be considered the same

    as blocks with only branches.

    Defined at line 1271 of file llvm/lib/CodeGen/BranchFolding.cpp

  • bool tryMergeRange (SmallVectorImpl<ConstantInt *> & EndPoints, ConstantInt * Low, ConstantInt * High)

    Defined at line 1271 of file llvm/lib/IR/Metadata.cpp

  • bool isPoisonShift (Value * Amount, const SimplifyQuery & Q)

    Returns true if a shift by

    always yields poison.

    Defined at line 1271 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • unsigned int getEncodedLinkage (LinkageTypes Linkage)

    Defined at line 1272 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool isMips64EL (const ELFYAML::Object & Obj)

    Defined at line 1273 of file llvm/lib/ObjectYAML/ELFEmitter.cpp

  • std::optional<SectionRef> getWasmCodeSection (const WasmObjectFile & Obj)

    Defined at line 1273 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • template <typename SequentialTy, typename ElementTy>
    Constant * getFPSequenceIfElementsMatch (ArrayRef V)

    Defined at line 1273 of file llvm/lib/IR/Constants.cpp

  • std::pair<bool, bool> mustSwapOperands (unsigned int Pattern)

    Return a pair of boolean flags showing if the new root and new prev operands

    must be swapped. See visual example of the rule in

    TargetInstrInfo::getReassociationOpcodes.

    Defined at line 1273 of file llvm/lib/CodeGen/TargetInstrInfo.cpp

  • MVT getPhysicalRegisterVT (SDNode * N, unsigned int Reg, const TargetInstrInfo * TII)

    getPhysicalRegisterVT - Returns the ValueType of the physical register

    definition of the specified node.

    FIXME: Move to SelectionDAG?

    Defined at line 1273 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • void findCandidateStructures (std::vector<IRSimilarityCandidate> & CandsForRepSubstring, DenseMap<unsigned int, SimilarityGroup> & StructuralGroups, DenseMap<unsigned int, DenseSet<IRSimilarityCandidate *>> & IndexToIncludedCand, DenseMap<IRSimilarityCandidate *, unsigned int> & CandToOverallGroup)

    From the list of IRSimilarityCandidates, perform a comparison between each

    IRSimilarityCandidate to determine if there are overlapping

    IRInstructionData, or if they do not have the same structure.

    Parameters

    CandsForRepSubstring [in] - The vector containing the IRSimilarityCandidates.
    StructuralGroups [out] - the mapping of unsigned integers to vector of IRSimilarityCandidates where each of the IRSimilarityCandidates in the vector are structurally similar to one another.
    IndexToIncludedCand [in] - Mapping of index of the an instruction in a circuit to the IRSimilarityCandidates that include this instruction.
    CandToOverallGroup [in] - Mapping of IRSimilarityCandidate to a number representing the structural group assigned to it.

    Defined at line 1273 of file llvm/lib/Analysis/IRSimilarityIdentifier.cpp

  • bool handleGenericOption (StringRef arg)

    Defined at line 1274 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • int getDecodedCastOpcode (unsigned int Val)

    Defined at line 1274 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool mayTailCallThisCC (CallingConv::ID CC)

    Return true if we might ever do TCO for calls with this calling convention.

    Defined at line 1275 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • void combineIRFlags (Instruction & From, Value * To)

    Defined at line 1276 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • Value * foldAndOrOfICmpsWithConstEq (ICmpInst * Cmp0, ICmpInst * Cmp1, bool IsAnd, bool IsLogical, InstCombiner::BuilderTy & Builder, const SimplifyQuery & Q, Instruction & I)

    Reduce logic-of-compares with equality to a constant by substituting a

    common operand with the constant. Callers are expected to call this with

    Cmp0/Cmp1 switched to handle logic op commutativity.

    Defined at line 1276 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool removeDeadSegment (SlotIndex Def, LiveRange & LR)

    Defined at line 1278 of file llvm/lib/CodeGen/SplitKit.cpp

  • Constant * createFoldedExitCond (const Loop * L, BasicBlock * ExitingBB, bool IsTaken)

    Defined at line 1279 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • unsigned int countEmbeddedNulls (const uint8_t * StringBytes, unsigned int Length)

    Defined at line 1280 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • bool isShuffleEquivalentToSelect (ShuffleVectorInst & Shuf)

    Defined at line 1280 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • Instruction * foldAddToAshr (BinaryOperator & Add)

    Try to reduce signed division by power-of-2 to an arithmetic shift right.

    Defined at line 1280 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • Value * simplifyUsingControlFlow (InstCombiner & Self, PHINode & PN, const DominatorTree & DT)

    Defined at line 1280 of file llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp

  • bool IsBetterFallthrough (MachineBasicBlock * MBB1, MachineBasicBlock * MBB2)

    IsBetterFallthrough - Return true if it would be clearly better to

    fall-through to MBB1 than to fall through into MBB2. This has to return

    a strict ordering, returning true for both (MBB1,MBB2) and (MBB2,MBB1) will

    result in infinite loops.

    Defined at line 1281 of file llvm/lib/CodeGen/BranchFolding.cpp

  • void addMissingWasmCodeSymbols (const WasmObjectFile & Obj, int & AllSymbols)

    Defined at line 1282 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void setupBBInfoEdges (const FuncPGOInstrumentation<PGOUseEdge, PGOUseBBInfo> & FuncInfo)

    Set up InEdges/OutEdges for all BBs in the MST.

    Defined at line 1283 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • void reportMayClobberedLoad (LoadInst * Load, MemDepResult DepInfo, const DominatorTree * DT, OptimizationRemarkEmitter * ORE)

    Try to locate the three instruction involved in a missed

    load-elimination case that is due to an intervening store.

    Defined at line 1283 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • void PrintChainedFixupTarget (ChainedFixupTarget & Target, size_t Idx, int Format, MachOObjectFile * O)

    Defined at line 1285 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Error getGlobalSymtabLocAndSize (const MemoryBufferRef & Data, uint64_t GlobalSymtabOffset, const char *& GlobalSymtabLoc, uint64_t & Size, const char * BitMessage)

    Defined at line 1285 of file llvm/lib/Object/Archive.cpp

  • BitModeTy getBitMode (const char * RawBitMode)

    Defined at line 1286 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • template <typename SequenceTy>
    Constant * getSequenceIfElementsMatch (Constant * C, ArrayRef V)

    Defined at line 1286 of file llvm/lib/IR/Constants.cpp

  • bool unpackStoreToAggregate (InstCombinerImpl & IC, StoreInst & SI)

    Defined at line 1287 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • void foldExit (const Loop * L, BasicBlock * ExitingBB, bool IsTaken, SmallVectorImpl<WeakTrackingVH> & DeadInsts)

    Defined at line 1288 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • const SCEV * minusSCEVNoSignedOverflow (const SCEV * A, const SCEV * B, ScalarEvolution & SE)

    Returns

    -

    if it guaranteed not to signed wrap. Otherwise returns

    nullptr.

    and

    must have the same integer type.

    Defined at line 1289 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • void addRange (SmallVectorImpl<ConstantInt *> & EndPoints, ConstantInt * Low, ConstantInt * High)

    Defined at line 1290 of file llvm/lib/IR/Metadata.cpp

  • void KnuthDiv (uint32_t * u, uint32_t * v, uint32_t * q, uint32_t * r, unsigned int m, unsigned int n)

    Implementation of Knuth's Algorithm D (Division of nonnegative integers)

    from "Art of Computer Programming, Volume 2", section 4.3.1, p. 272. The

    variables here have the same names as in the algorithm. Comments explain

    the algorithm and any deviation from it.

    Defined at line 1290 of file llvm/lib/Support/APInt.cpp

  • bool isTriviallyReplaceablePHI (const PHINode & PN, const Instruction & I)

    Returns true if a PHINode is a trivially replaceable with an

    Instruction.

    This is true when all incoming values are that instruction.

    This pattern occurs most often with LCSSA PHI nodes.

    Defined at line 1292 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool isInSymtab (const MCSymbolWasm & Sym)

    Defined at line 1292 of file llvm/lib/MC/WasmObjectWriter.cpp

  • optional getRangeViaSLT (Predicate Pred, APInt RHS, function_ref<std::optional<ConstantRange> (const APInt &)> Fn)

    Defined at line 1292 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • unsigned int guessCharByteSize (const uint8_t * StringBytes, unsigned int NumChars, uint64_t NumBytes)

    A mangled (non-wide) string literal stores the total length of the string it

    refers to (passed in NumBytes), and it contains up to 32 bytes of actual text

    (passed in StringBytes, NumChars).

    Defined at line 1293 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • int getDecodedUnaryOpcode (unsigned int Val, Type * Ty)

    Defined at line 1294 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • int getDataAlignmentFactor (MCStreamer & streamer)

    Defined at line 1295 of file llvm/lib/MC/MCDwarf.cpp

  • bool definesFullReg (const MachineInstr & MI, Register Reg)

    Returns true if

    defines the full vreg

    as opposed to just

    defining a subregister.

    Defined at line 1295 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • basic_string getVarName (InstrProfInstBase * Inc, StringRef Prefix, bool & Renamed)

    Get the name of a profiling variable for a particular function.

    Defined at line 1295 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • const char * matchFlagWithArg (StringRef Expected, ArrayRef<const char *>::iterator & ArgIt, ArrayRef Args)

    Defined at line 1295 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void CheckForLiveRegDef (SUnit * SU, MCRegister Reg, SUnit ** LiveRegDefs, int & RegAdded, SmallVectorImpl<unsigned int> & LRegs, const TargetRegisterInfo * TRI, const SDNode * Node)

    CheckForLiveRegDef - Return true and update live register vector if the

    specified register def of the specified SUnit clobbers any "live" registers.

    Defined at line 1295 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • std::optional<std::pair<Value *, Value *>> matchSymmetricPhiNodesPair (PHINode * LHS, PHINode * RHS)

    Defined at line 1295 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void replaceLoopPHINodesWithPreheaderValues (LoopInfo * LI, Loop * L, SmallVectorImpl<WeakTrackingVH> & DeadInsts, ScalarEvolution & SE)

    Defined at line 1295 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • bool shouldGuaranteeTCO (CallingConv::ID CC, bool GuaranteedTailCallOpt)

    Return true if the function is being made into a tailcall target by

    changing its ABI.

    Defined at line 1297 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • BasicBlock * SplitBlockPredecessorsImpl (BasicBlock * BB, ArrayRef Preds, const char * Suffix, DomTreeUpdater * DTU, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)

    Defined at line 1297 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • const SCEV * mulSCEVNoSignedOverflow (const SCEV * A, const SCEV * B, ScalarEvolution & SE)

    Returns

    *

    if it guaranteed not to signed wrap. Otherwise returns

    nullptr.

    and

    must have the same integer type.

    Defined at line 1298 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • bool hasOnlyUniformBranches (Region * R, unsigned int UniformMDKindID, const UniformityInfo & UA)

    Defined at line 1298 of file llvm/lib/Transforms/Scalar/StructurizeCFG.cpp

  • unsigned int getEncodedLinkage (const GlobalValue & GV)

    Defined at line 1300 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • Libcall findFPToIntLibcall (EVT SrcVT, EVT RetVT, EVT & Promoted, bool Signed)

    Even if the result type is legal, no libcall may exactly match. (e.g. We

    don't have FP-i8 conversions) This helper method looks for an appropriate

    promoted libcall.

    Defined at line 1300 of file llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp

  • bool isFoldableInLoop (const Instruction & I, const Loop * CurLoop, const TargetTransformInfo * TTI)

    Return true if the instruction is foldable in the loop.

    Defined at line 1301 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void copyDebugInfoToPredecessor (const TargetInstrInfo * TII, MachineBasicBlock & MBB, MachineBasicBlock & PredMBB)

    Defined at line 1302 of file llvm/lib/CodeGen/BranchFolding.cpp

  • Value * simplifyShift (BinaryOps Opcode, Value * Op0, Value * Op1, bool IsNSW, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an Shl, LShr or AShr, see if we can fold the result.

    If not, this returns null.

    Defined at line 1302 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * findDominatingValue (const MemoryLocation & Loc, Type * LoadTy, Instruction * From, AAResults * AA)

    Find non-clobbered value for Loc memory location in extended basic block

    (chain of basic blocks with single predecessors) starting From instruction.

    Defined at line 1303 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • void removeDebugInstrs (MachineFunction & mf)

    Defined at line 1304 of file llvm/lib/CodeGen/LiveDebugVariables.cpp

  • uint64_t getEncodedFFlags (FFlags Flags)

    Defined at line 1304 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • unsigned int getSizeForEncoding (MCStreamer & streamer, unsigned int symbolEncoding)

    Defined at line 1305 of file llvm/lib/MC/MCDwarf.cpp

  • void PrintChainedFixups (MachOObjectFile * O)

    Defined at line 1305 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool hasAtLeastTwoBiasedBranches (CHRScope * Scope)

    Defined at line 1307 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • void findBasePointers (const int & live, int & PointerToBase, DominatorTree * DT, int & DVCache, int & KnownBases)

    For a set of live pointers (base and/or derived), identify the base

    pointer of the object which they are derived from. This routine will

    mutate the IR graph as needed to make the 'base' pointer live at the

    definition site of 'derived'. This ensures that any use of 'derived' can

    also use 'base'. This may involve the insertion of a number of

    additional PHI nodes.

    preconditions: live is a set of pointer type Values

    side effects: may insert PHI nodes into the existing CFG, will preserve

    CFG, will not remove or mutate any existing nodes

    post condition: PointerToBase contains one (derived, base) pair for every

    pointer in live. Note that derived can be equal to base if the original

    pointer was a base pointer.

    Defined at line 1307 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • Instruction * foldSelectCtlzToCttz (ICmpInst * ICI, Value * TrueVal, Value * FalseVal, InstCombiner::BuilderTy & Builder)

    Fold the following code sequence:

    Defined at line 1307 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • int getDecodedBinaryOpcode (unsigned int Val, Type * Ty)

    Defined at line 1308 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Instruction * foldInsSequenceIntoSplat (InsertElementInst & InsElt)

    Turn a chain of inserts that splats a value into an insert + shuffle:

    insertelt(insertelt(insertelt(insertelt X, %k, 0), %k, 1), %k, 2) ... ->

    shufflevector(insertelt(X, %k, 0), poison, zero)

    Defined at line 1308 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • const SCEV * absSCEVNoSignedOverflow (const SCEV * A, ScalarEvolution & SE)

    Returns the absolute value of

    In the context of dependence analysis,

    we need an absolute value in a mathematical sense. If

    is the signed

    minimum value, we cannot represent it unless extending the original type.

    Thus if we cannot prove that

    is not the signed minimum value, returns

    nullptr.

    Defined at line 1310 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • bool addCalls (VTableSlotInfo & SlotInfo, const ValueInfo & Callee)

    Defined at line 1310 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp

  • bool isSectionReferenced (MCAssembler & Asm, MCSectionWasm & Section)

    Defined at line 1311 of file llvm/lib/MC/WasmObjectWriter.cpp

  • bool isSanitizer (Kind Kind)

    Defined at line 1313 of file llvm/lib/AsmParser/LLParser.cpp

  • void dumpImportListForModule (const ModuleSummaryIndex & Index, StringRef ModulePath, FunctionImporter::ImportMapTy & ImportList)

    Defined at line 1313 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • ValueLatticeElement getValueFromICmpCtpop (Predicate Pred, Value * RHS)

    Get value range for a "ctpop(Val) Pred RHS" condition.

    Defined at line 1313 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • void copyDebugInfoToSuccessor (const TargetInstrInfo * TII, MachineBasicBlock & MBB, MachineBasicBlock & SuccMBB)

    Defined at line 1314 of file llvm/lib/CodeGen/BranchFolding.cpp

  • int getSectionNames (const ObjectFile & Obj)

    Defined at line 1314 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool shouldRecordFunctionAddr (Function * F)

    Defined at line 1314 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • int sancov_main (int argc, char ** , const llvm::ToolContext & )

    Defined at line 1342 of file llvm/tools/sancov/sancov.cpp

  • int showMain (int argc, const char *[] argv)

    The main entry point for the 'show' subcommand.

    Defined at line 1365 of file llvm/tools/llvm-cov/CodeCoverage.cpp

  • Error elf2yaml (llvm::raw_ostream & Out, const llvm::object::ObjectFile & Obj)

    Defined at line 1697 of file llvm/tools/obj2yaml/elf2yaml.cpp

  • int reportMain (int argc, const char *[] argv)

    The main entry point for the 'report' subcommand.

    Defined at line 1370 of file llvm/tools/llvm-cov/CodeCoverage.cpp

  • int exportMain (int argc, const char *[] argv)

    The main entry point for the 'export' subcommand.

    Defined at line 1375 of file llvm/tools/llvm-cov/CodeCoverage.cpp

  • int llvm_echo ()

    echo.c

    Defined at line 1620 of file llvm/tools/llvm-c-test/echo.cpp

  • Value * simplifyAndInst (Value * , Value * , const SimplifyQuery & , unsigned int )

    Given operands for an And, see if we can fold the result.

    If not, this returns null.

    Defined at line 2072 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool overreadUndefContents (MemorySSA * MSSA, MemCpyInst * MemCpy, MemIntrinsic * MemSrc, BatchAAResults & BAA)

    If the memcpy is larger than the previous, but the memory was undef prior to

    that, we can just ignore the tail. Technically we're only interested in the

    bytes from 0..MemSrcOffset and MemSrcLength+MemSrcOffset..CopySize here, but

    as we can't easily represent this location (hasUndefContents uses mustAlias

    which cannot deal with offsets), we use the full 0..CopySize range.

    Defined at line 1411 of file llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

  • bool isNotUsedOrFoldableInLoop (const Instruction & I, const Loop * CurLoop, const LoopSafetyInfo * SafetyInfo, TargetTransformInfo * TTI, bool & FoldableInLoop, bool LoopNestMode)

    Return true if the only users of this instruction are outside of

    the loop. If this is true, we can sink the instruction to the exit

    blocks of the loop.

    We also return true if the instruction could be folded away in lowering.

    (e.g., a GEP can be folded into a load as an addressing mode in the loop).

    Defined at line 1331 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void hoist (Instruction & I, const DominatorTree * DT, const Loop * CurLoop, BasicBlock * Dest, ICFLoopSafetyInfo * SafetyInfo, MemorySSAUpdater & MSSAU, ScalarEvolution * SE, OptimizationRemarkEmitter * ORE)

    When an instruction is found to only use loop invariant operands that

    is safe to hoist, this instruction is called to do the dirty work.

    Defined at line 1683 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool sink (Instruction & I, LoopInfo * LI, DominatorTree * DT, const Loop * CurLoop, ICFLoopSafetyInfo * SafetyInfo, MemorySSAUpdater & MSSAU, OptimizationRemarkEmitter * ORE)

    When an instruction is found to only be used outside of the loop, this

    function moves it to the exit blocks and patches up SSA form as needed.

    This method is guaranteed to remove the original instruction from its

    position, and may either delete it or move it to outside of the loop.

    Defined at line 1577 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool isSafeToExecuteUnconditionally (Instruction & Inst, const DominatorTree * DT, const TargetLibraryInfo * TLI, const Loop * CurLoop, const LoopSafetyInfo * SafetyInfo, OptimizationRemarkEmitter * ORE, const Instruction * CtxI, AssumptionCache * AC, bool AllowSpeculation)

    Only sink or hoist an instruction if it is not a trapping instruction,

    or if the instruction is known not to trap when moved to the preheader.

    or if it is a trapping instruction and is guaranteed to execute.

    Defined at line 1730 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • Instruction * cloneInstructionInExitBlock (Instruction & I, BasicBlock & ExitBlock, PHINode & PN, const LoopInfo * LI, const LoopSafetyInfo * SafetyInfo, MemorySSAUpdater & MSSAU)

    Defined at line 1373 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void eraseInstruction (Instruction & I, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU)

    Defined at line 1450 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void moveInstructionBefore (Instruction & I, ilist_iterator_w_bits Dest, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU, ScalarEvolution * SE)

    Defined at line 1457 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void foreachMemoryAccess (MemorySSA * MSSA, Loop * L, function_ref<void (Instruction *)> Fn)

    Defined at line 2227 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • int freezeset (struct parse * , cset * )

    Defined at line 1241 of file llvm/lib/Support/regcomp.c

  • int firstch (struct parse * , cset * )

    Defined at line 1271 of file llvm/lib/Support/regcomp.c

  • int nch (struct parse * , cset * )

    - nch - number of characters in a set

    Defined at line 1286 of file llvm/lib/Support/regcomp.c

  • SmallVector<PointersAndHasReadsOutsideSet, 0> collectPromotionCandidates (MemorySSA * MSSA, AliasAnalysis * AA, Loop * L)

    The bool indicates whether there might be reads outside the set, in which

    case only loads may be promoted.

    Defined at line 2238 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void mcadd (struct parse * , cset * , const char * )

    - mcadd - add a collating element to a cset

    Defined at line 1300 of file llvm/lib/Support/regcomp.c

  • void mcinvert (struct parse * , cset * )

    - mcinvert - invert the list of collating elements in a cset

    This would have to know the set of possibilities. Implementation

    is deferred.

    ARGSUSED

    Defined at line 1325 of file llvm/lib/Support/regcomp.c

  • void mccase (struct parse * , cset * )

    - mccase - add case counterparts of the list of collating elements in a cset

    This would have to know the set of possibilities. Implementation

    is deferred.

    ARGSUSED

    Defined at line 1336 of file llvm/lib/Support/regcomp.c

  • int isinsets (struct re_guts * , int )

    Defined at line 1343 of file llvm/lib/Support/regcomp.c

  • int samesets (struct re_guts * , int , int )

    Defined at line 1359 of file llvm/lib/Support/regcomp.c

  • void categorize (struct parse * , struct re_guts * )

    - categorize - sort out character categories

    Defined at line 1376 of file llvm/lib/Support/regcomp.c

  • sopno dupl (struct parse * , sopno , sopno )

    Defined at line 1399 of file llvm/lib/Support/regcomp.c

  • void doemit (struct parse * , sop , size_t )

    - doemit - emit a strip operator

    It might seem better to implement this as a macro with a function as

    hard-case backup, but it's just too big and messy unless there are

    some changes to the data structures. Maybe later.

    Defined at line 1424 of file llvm/lib/Support/regcomp.c

  • void doinsert (struct parse * , sop , size_t , sopno )

    - doinsert - insert a sop into the strip

    Defined at line 1444 of file llvm/lib/Support/regcomp.c

  • void dofwd (struct parse * , sopno , sop )

    - dofwd - complete a forward reference

    Defined at line 1477 of file llvm/lib/Support/regcomp.c

  • void enlarge (struct parse * , sopno )

    - enlarge - enlarge the strip

    Defined at line 1489 of file llvm/lib/Support/regcomp.c

  • void stripsnug (struct parse * , struct re_guts * )

    - stripsnug - compact the strip

    Defined at line 1512 of file llvm/lib/Support/regcomp.c

  • void findmust (struct parse * , struct re_guts * )

    - findmust - fill in must and mlen with longest mandatory literal string

    This algorithm could do fancy things like analyzing the operands of |

    for common subsequences. Someday. This code is simple and finds most

    of the interesting cases.

    Note that must and mlen got initialized during setup.

    Defined at line 1536 of file llvm/lib/Support/regcomp.c

  • sopno pluscount (struct parse * , struct re_guts * )

    Defined at line 1611 of file llvm/lib/Support/regcomp.c

  • LLVMMetadataRef LLVMDIBuilderCreateDebugLocation (LLVMContextRef Ctx, unsigned int Line, unsigned int Column, LLVMMetadataRef Scope, LLVMMetadataRef InlinedAt)

    Creates a new DebugLocation that describes a source location.

    Parameters

    Line The line in the source file.
    Column The column in the source file.
    Scope The scope in which the location resides.
    InlinedAt The scope where this location was inlined, if at all. (optional).

    Defined at line 1246 of file llvm/lib/IR/DebugInfo.cpp

  • unsigned int LLVMDILocationGetLine (LLVMMetadataRef Location)

    Get the line number of this debug location.

    Parameters

    Location The debug location.

    Defined at line 1254 of file llvm/lib/IR/DebugInfo.cpp

  • unsigned int LLVMDILocationGetColumn (LLVMMetadataRef Location)

    Get the column number of this debug location.

    Parameters

    Location The debug location.

    Defined at line 1258 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDILocationGetScope (LLVMMetadataRef Location)

    Get the local scope associated with this debug location.

    Parameters

    Location The debug location.

    Defined at line 1262 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDILocationGetInlinedAt (LLVMMetadataRef Location)

    Get the "inline at" location associated with this debug location.

    Parameters

    Location The debug location.

    Defined at line 1266 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIScopeGetFile (LLVMMetadataRef Scope)

    Get the metadata of the file associated with a given scope.

    Parameters

    Scope The scope object.

    Defined at line 1270 of file llvm/lib/IR/DebugInfo.cpp

  • const char * LLVMDIFileGetDirectory (LLVMMetadataRef File, unsigned int * Len)

    Get the directory of a given file.

    Parameters

    File The file object.
    Len The length of the returned string.

    Defined at line 1274 of file llvm/lib/IR/DebugInfo.cpp

  • const char * LLVMDIFileGetFilename (LLVMMetadataRef File, unsigned int * Len)

    Get the name of a given file.

    Parameters

    File The file object.
    Len The length of the returned string.

    Defined at line 1280 of file llvm/lib/IR/DebugInfo.cpp

  • const char * LLVMDIFileGetSource (LLVMMetadataRef File, unsigned int * Len)

    Get the source of a given file.

    Parameters

    File The file object.
    Len The length of the returned string.

    Defined at line 1286 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray (LLVMDIBuilderRef Builder, LLVMMetadataRef * Data, size_t NumElements)

    Create a type array.

    Parameters

    Builder The DIBuilder.
    Data The type elements.
    NumElements Number of type elements.

    Defined at line 1684 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateSubroutineType (LLVMDIBuilderRef Builder, LLVMMetadataRef File, LLVMMetadataRef * ParameterTypes, unsigned int NumParameterTypes,  Flags)

    Create subroutine type.

    Parameters

    Builder The DIBuilder.
    File The file in which the subroutine resides.
    ParameterTypes An array of subroutine parameter types. This includes return type at 0th index.
    NumParameterTypes The number of parameter types in
    Flags E.g.: These flags are used to emit dwarf attributes.

    Defined at line 1691 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateMacro (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentMacroFile, unsigned int Line,  RecordType, const char * Name, size_t NameLen, const char * Value, size_t ValueLen)

    Create debugging information entry for a macro.

    Parameters

    Builder The DIBuilder.
    ParentMacroFile Macro parent (could be NULL).
    Line Source line number where the macro is defined.
    RecordType DW_MACINFO_define or DW_MACINFO_undef.
    Name Macro name.
    NameLen Macro name length.
    Value Macro value.
    ValueLen Macro value length.

    Defined at line 1295 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateTempMacroFile (LLVMDIBuilderRef Builder, LLVMMetadataRef ParentMacroFile, unsigned int Line, LLVMMetadataRef File)

    Create debugging information temporary entry for a macro file.

    List of macro node direct children will be calculated by DIBuilder,

    using the

    relationship.

    Parameters

    Builder The DIBuilder.
    ParentMacroFile Macro parent (could be NULL).
    Line Source line number where the macro file is included.
    File File descriptor containing the name of the macro file.

    Defined at line 1307 of file llvm/lib/IR/DebugInfo.cpp

  • Value * optimizeMemCmpVarSize (CallInst * CI, Value * LHS, Value * RHS, Value * Size, bool StrNCmp, IRBuilderBase & B, const DataLayout & DL)

    Optimize a memcmp or, when StrNCmp is true, strncmp call CI with constant

    arrays LHS and RHS and nonconstant Size.

    Defined at line 1504 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateEnumerator (LLVMDIBuilderRef Builder, const char * Name, size_t NameLen, int64_t Value, LLVMBool IsUnsigned)

    Create debugging information entry for an enumerator.

    Parameters

    Builder The DIBuilder.
    Name Enumerator name.
    NameLen Length of enumerator name.
    Value Enumerator value.
    IsUnsigned True if the value is unsigned.

    Defined at line 1315 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMOrcIndirectStubsManagerRef LLVMOrcCreateLocalIndirectStubsManager (const char * TargetTriple)

    Create a LocalIndirectStubsManager from the given target triple.

    The resulting IndirectStubsManager is owned by the client

    and must be disposed of by calling LLVMOrcDisposeDisposeIndirectStubsManager.

    Defined at line 1171 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcDisposeIndirectStubsManager (LLVMOrcIndirectStubsManagerRef ISM)

    Dispose of an IndirectStubsManager.

    Defined at line 1177 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • LLVMErrorRef LLVMOrcCreateLocalLazyCallThroughManager (const char * TargetTriple, LLVMOrcExecutionSessionRef ES, LLVMOrcJITTargetAddress ErrorHandlerAddr, LLVMOrcLazyCallThroughManagerRef * LCTM)

    Defined at line 1181 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • void LLVMOrcDisposeLazyCallThroughManager (LLVMOrcLazyCallThroughManagerRef LCTM)

    Dispose of an LazyCallThroughManager.

    Defined at line 1194 of file llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp

  • cl::TokenizerCallback getRspQuoting (ArrayRef ArgsArr)

    Defined at line 1315 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void emitDirectivesBasicImpl (const DirectiveLanguage & DirLang, raw_ostream & OS)

    Generate the implemenation for the enumeration in the directive

    language. This code can be included in library.

    Defined at line 1315 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • FunctionType * makeDoubleDouble (LLVMContext & C)

    Defined at line 1316 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • Align computeLoadStoreDefaultAlign (Type * Ty, InsertPosition Pos)

    Defined at line 1316 of file llvm/lib/IR/Instructions.cpp

  • bool emitDebugLabelComment (const MachineInstr * MI, AsmPrinter & AP)

    This method handles the target-independent form of DBG_LABEL, returning

    true if it was able to do so. A false return means the target will need

    to handle MI in EmitInstruction.

    Defined at line 1316 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • FunctionType * makeX86FP80X86FP80 (LLVMContext & C)

    Defined at line 1320 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • const char * getGroupType (uint32_t Flag)

    Defined at line 1321 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void CheckForLiveRegDefMasked (SUnit * SU, const uint32_t * RegMask, ArrayRef<SUnit *> LiveRegDefs, int & RegAdded, SmallVectorImpl<unsigned int> & LRegs)

    CheckForLiveRegDefMasked - Check for any live physregs that are clobbered

    by RegMask, and add them to LRegs.

    Defined at line 1321 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • uint64_t getEncodedGVSummaryFlags (GVFlags Flags, bool ImportAsDecl)

    Decode the flags for GlobalValue in the summary. See getDecodedGVSummaryFlags

    in BitcodeReader.cpp.

    Defined at line 1321 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool isDependenceTestEnabled (DependenceTestType Test)

    Returns true iff

    is enabled.

    Defined at line 1323 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateEnumeratorOfArbitraryPrecision (LLVMDIBuilderRef Builder, const char * Name, size_t NameLen, uint64_t SizeInBits, const uint64_t[] Words, LLVMBool IsUnsigned)

    Create debugging information entry for an enumerator of arbitrary precision.

    Parameters

    Builder The DIBuilder.
    Name Enumerator name.
    NameLen Length of enumerator name.
    SizeInBits Number of bits of the value.
    Words The words that make up the value.
    IsUnsigned True if the value is unsigned.

    Defined at line 1323 of file llvm/lib/IR/DebugInfo.cpp

  • void appendGlobalSymbolTableInfo (SmallVector<GlobalSymtabInfo> & SymtabInfos, const char * GlobalSymtabLoc, uint64_t Size)

    Defined at line 1323 of file llvm/lib/Object/Archive.cpp

  • void findBasePointers (DominatorTree & DT, int & DVCache, CallBase * Call, PartiallyConstructedSafepointRecord & result, int & PointerToBase, int & KnownBases)

    Find the required based pointers (and adjust the live set) for the given

    parse point.

    Defined at line 1324 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • FunctionType * makeDoubleDoubleI32 (LLVMContext & C)

    Defined at line 1325 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • void emitFDESymbol (MCObjectStreamer & streamer, const MCSymbol & symbol, unsigned int symbolEncoding, bool isEH)

    Defined at line 1326 of file llvm/lib/MC/MCDwarf.cpp

  • Instruction * foldClampRangeOfTwo (IntrinsicInst * II, InstCombiner::BuilderTy & Builder)

    If we have a clamp pattern like max (min X, 42), 41 -- where the output

    can only be one of two possible constant values -- turn that into a select

    of constants.

    Defined at line 1326 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • unsigned int decodeMultiByteChar (const uint8_t * StringBytes, unsigned int CharIndex, unsigned int CharBytes)

    Defined at line 1327 of file llvm/lib/Demangle/MicrosoftDemangle.cpp

  • void addPltEntries (const MCSubtargetInfo & STI, const ObjectFile & Obj, int & SectionNames, int & AllSymbols, StringSaver & Saver)

    Defined at line 1327 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void simplifySuspendPoints (coro::Shape & Shape)

    Remove suspend points that are simplified.

    Defined at line 1327 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • void ARM64ProcessEpilogs (WinEH::FrameInfo * info, WinEH::FrameInfo::Segment * Seg, uint32_t & TotalCodeBytes, MapVector<MCSymbol *, uint32_t> & EpilogInfo)

    Defined at line 1328 of file llvm/lib/MC/MCWin64EH.cpp

  • FunctionType * makeX86FP80X86FP80I32 (LLVMContext & C)

    Defined at line 1330 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • template <typename ExtendOpTy>
    const SCEV * getPreStartForExtend (const SCEVAddRecExpr * AR, Type * Ty, ScalarEvolution * SE, unsigned int Depth)

    The recurrence AR has been shown to have no signed/unsigned wrap or something

    close to it. Typically, if we can prove NSW/NUW for AR, then we can just as

    easily prove NSW/NUW for its preincrement or postincrement sibling. This

    allows normalizing a sign/zero extended AddRec as such: {sext/zext(Step +

    Start),+,Step} => {(Step + sext/zext(Start),+,Step} As a result, the

    expression "Step + sext/zext(PreIncAR)" is congruent with

    "sext/zext(PostIncAR)"

    Defined at line 1330 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateEnumerationType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef * Elements, unsigned int NumElements, LLVMMetadataRef ClassTy)

    Create debugging information entry for an enumeration.

    Parameters

    Builder The DIBuilder.
    Scope Scope in which this enumeration is defined.
    Name Enumeration name.
    NameLen Length of enumeration name.
    File File where this member is defined.
    LineNumber Line number.
    SizeInBits Member size.
    AlignInBits Member alignment.
    Elements Enumeration elements.
    NumElements Number of enumeration elements.
    ClassTy Underlying type of a C++11/ObjC fixed enum.

    Defined at line 1332 of file llvm/lib/IR/DebugInfo.cpp

  • bool CheckBaseRegAndIndexRegAndScale (MCRegister BaseReg, MCRegister IndexReg, unsigned int Scale, bool Is64BitMode, StringRef & ErrMsg)

    Defined at line 1332 of file llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp

  • void salvageDebugInfoFromEmptyBlock (const TargetInstrInfo * TII, MachineBasicBlock & MBB)

    Try to salvage DBG_VALUE instructions from an otherwise empty block. If such

    a basic block is removed we would lose the debug information unless we have

    copied the information to a predecessor/successor.

    TODO: This function only handles some simple cases. An alternative would be

    to run a heavier analysis, such as the LiveDebugValues pass, before we do

    branch folding.

    Defined at line 1333 of file llvm/lib/CodeGen/BranchFolding.cpp

  • Value * createInvariantCond (const Loop * L, BasicBlock * ExitingBB, const ScalarEvolution::LoopInvariantPredicate & LIP, SCEVExpander & Rewriter)

    Defined at line 1333 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • ConstantFP * flushDenormalConstant (Type * Ty, const APFloat & APF, DenormalModeKind Mode)

    Defined at line 1333 of file llvm/lib/Analysis/ConstantFolding.cpp

  • Expected createTempFile (StringRef FinalPath, uint64_t Size)

    Defined at line 1333 of file llvm/lib/CAS/OnDiskGraphDB.cpp

  • bool deleteIfDead (GlobalValue & GV, SmallPtrSetImpl<const Comdat *> & NotDiscardableComdats, function_ref<void (Function &)> DeleteFnCallback)

    Defined at line 1333 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool isSignedMinMaxClamp (const Value * Select, const Value *& In, const APInt *& CLow, const APInt *& CHigh)

    Match a signed min+max clamp pattern like smax(smin(In, CHigh), CLow).

    Returns the input and lower/upper bounds.

    Defined at line 1334 of file llvm/lib/Analysis/ValueTracking.cpp

  • FunctionType * makeDoubleDoubleDouble (LLVMContext & C)

    Defined at line 1336 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • const uint32_t * getNodeRegMask (const SDNode * N)

    getNodeRegMask - Returns the register mask attached to an SDNode, if any.

    Defined at line 1336 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • int ar_main (int argc, char ** argv)

    Defined at line 1337 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void dumpUnpackedICmp (raw_ostream & OS, Predicate Pred, Value * LHS, Value * RHS)

    Defined at line 1338 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • void EmitPersonality (MCStreamer & streamer, const MCSymbol & symbol, unsigned int symbolEncoding)

    Defined at line 1340 of file llvm/lib/MC/MCDwarf.cpp

  • SMRange ProcessMatchResult (MatchType MatchTy, const SourceMgr & SM, SMLoc Loc, FileCheckType CheckTy, StringRef Buffer, size_t Pos, size_t Len, std::vector<FileCheckDiag> * Diags, bool AdjustPrevDiags)

    Defined at line 1340 of file llvm/lib/FileCheck/FileCheck.cpp

  • void ComputeCrossModuleImportForModuleForTest (StringRef ModulePath, function_ref isPrevailing, const ModuleSummaryIndex & Index, FunctionImporter::ImportMapTy & ImportList)

    Compute all the imports for the given module using the Index.

    is a callback that will be called with a global value's GUID

    and summary and should return whether the module corresponding to the

    summary contains the linker-prevailing copy of that value.

    will be populated with a map that can be passed to

    FunctionImporter::importFunctions() above (see description there).

    Defined at line 1340 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • FunctionType * makeX86FP80X86FP80X86FP80 (LLVMContext & C)

    Defined at line 1341 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • SmallVector<Function *, 1> GetFunctions (Any IR)

    Defined at line 1342 of file llvm/lib/Passes/StandardInstrumentations.cpp

  • uint64_t getEncodedGVarFlags (GVarFlags Flags)

    Defined at line 1343 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateSetType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef BaseTy)

    Create debugging information entry for a set.

    Parameters

    Builder The DIBuilder.
    Scope The scope in which the set is defined.
    Name A name that uniquely identifies this set.
    NameLen The length of the C string passed to
    File File where the set is located.
    Line Line number of the declaration.
    SizeInBits Set size.
    AlignInBits Set alignment.
    BaseTy The base type of the set.

    Defined at line 1344 of file llvm/lib/IR/DebugInfo.cpp

  • void PrintDyldInfo (MachOObjectFile * O)

    Defined at line 1345 of file llvm/tools/llvm-objdump/MachODump.cpp

  • BinOp getDecodedRMWOperation (unsigned int Val)

    Defined at line 1346 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • FunctionType * makeDoubleDoubleDoubleDouble (LLVMContext & C)

    Defined at line 1347 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • void movePHIValuesToInsertedBlock (BasicBlock * SuccBB, BasicBlock * InsertedBB, BasicBlock * PredBB, PHINode * UntilPHI)

    Moves the values in the PHIs in SuccBB that correspong to PredBB into a new

    PHI in InsertedBB.

    Defined at line 1347 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • size_t TypeStoreSizeToSizeIndex (uint32_t TypeSize)

    Defined at line 1348 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • uint64_t getEncodedHotnessCallEdgeInfo (const CalleeInfo & CI)

    Defined at line 1349 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool TestForOptimizerCrash (const BugDriver & BD, Module * M)

    Defined at line 1350 of file llvm/tools/bugpoint/CrashDebugger.cpp

  • Value * foldSelectCttzCtlz (ICmpInst * ICI, Value * TrueVal, Value * FalseVal, InstCombinerImpl & IC)

    Attempt to fold a cttz/ctlz followed by a icmp plus select into a single

    call to cttz/ctlz with flag 'is_zero_poison' cleared.

    For example, we can fold the following code sequence:

    Defined at line 1350 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool shouldUsePublicSymbol (Function * Fn)

    Defined at line 1351 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • std::optional<Value *> createReplacement (ICmpInst * ICmp, const Loop * L, BasicBlock * ExitingBB, const SCEV * MaxIter, bool Inverted, bool SkipLastIter, ScalarEvolution * SE, SCEVExpander & Rewriter)

    Defined at line 1352 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • void checkMachOComdat (const GlobalValue * GV)

    Defined at line 1353 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateSubrangeType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, unsigned int LineNo, LLVMMetadataRef File, uint64_t SizeInBits, uint32_t AlignInBits,  Flags, LLVMMetadataRef BaseTy, LLVMMetadataRef LowerBound, LLVMMetadataRef UpperBound, LLVMMetadataRef Stride, LLVMMetadataRef Bias)

    Create a descriptor for a subrange with dynamic bounds.

    Parameters

    Builder The DIBuilder.
    Scope The scope in which the subrange is defined.
    Name A name that uniquely identifies this subrange.
    NameLen The length of the C string passed to
    LineNo Line number.
    File File where the subrange is located.
    SizeInBits Member size.
    AlignInBits Member alignment.
    Flags Flags.
    BaseTy The base type of the subrange. eg integer or enumeration
    LowerBound Lower bound of the subrange.
    UpperBound Upper bound of the subrange.
    Stride Stride of the subrange.
    Bias Bias of the subrange.

    Defined at line 1353 of file llvm/lib/IR/DebugInfo.cpp

  • void getAvailableFeatures (unsigned int ECX, unsigned int EDX, unsigned int MaxLeaf, unsigned int * Features)

    Defined at line 1353 of file llvm/lib/TargetParser/Host.cpp

  • bool canUseReferenceType (const DbgVariableLocation & Loc)

    Defined at line 1354 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • FunctionType * makeX86FP80X86FP80X86FP80X86FP80 (LLVMContext & C)

    Defined at line 1354 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • void recomputeLiveInValues (Function & F, DominatorTree & DT, ArrayRef<CallBase *> toUpdate, MutableArrayRef<struct PartiallyConstructedSafepointRecord> records, int & PointerToBase, GCStrategy * GC)

    Defined at line 1354 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool GlobalWasGeneratedByCompiler (GlobalVariable * G)

    Check if

    has been created by a trusted compiler pass.

    Defined at line 1355 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • DenormalMode getInstrDenormalMode (const Instruction * CtxI, Type * Ty)

    Return the denormal mode that can be assumed when executing a floating point

    operation at

    Defined at line 1356 of file llvm/lib/Analysis/ConstantFolding.cpp

  • bool foldMemChr (CallInst * Call, DomTreeUpdater * DTU, const DataLayout & DL)

    Convert memchr with a small constant string into a switch

    Defined at line 1356 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • size_t getPageSize ()

    Defined at line 1357 of file llvm/lib/CAS/OnDiskGraphDB.cpp

  • size_t countSkippableZeroBytes (ArrayRef Buf)

    Normally the disassembly output will skip blocks of zeroes. This function

    returns the number of zero bytes that can be skipped when dumping the

    disassembly of the instructions in Buf.

    Defined at line 1357 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • unsigned int X86ChooseCmpOpcode (EVT VT, const X86Subtarget * Subtarget)

    Defined at line 1357 of file llvm/lib/Target/X86/X86FastISel.cpp

  • bool needsReferenceType (const DbgVariableLocation & Loc)

    Defined at line 1358 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • bool isBuildVectorOp (unsigned int Opcode)

    Defined at line 1358 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • uint64_t getEncodedRelBFCallEdgeInfo (const CalleeInfo & CI)

    Defined at line 1358 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • void initializeInterleavedLoadCombinePassOnce (PassRegistry & Registry)

    Defined at line 1359 of file llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp

  • bool MayContainThrowingOrExitingCallAfterCB (CallBase * Begin, ReturnInst * End)

    Defined at line 1359 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void initializeX86LowerAMXTypeLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 1360 of file llvm/lib/Target/X86/X86LowerAMXType.cpp

  • ConstantFP * flushDenormalConstantFP (ConstantFP * CFP, const Instruction * Inst, bool IsOutput)

    Defined at line 1362 of file llvm/lib/Analysis/ConstantFolding.cpp

  • void emitDirectivesImpl (const RecordKeeper & Records, raw_ostream & OS)

    Generate the implemenation section for the enumeration in the directive

    language.

    Defined at line 1362 of file llvm/utils/TableGen/Basic/DirectiveEmitter.cpp

  • bool isSignedMinMaxIntrinsicClamp (const IntrinsicInst * II, const APInt *& CLow, const APInt *& CHigh)

    Defined at line 1363 of file llvm/lib/Analysis/ValueTracking.cpp

  • void mergePdbs ()

    Defined at line 1364 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • bool checkNoWrapFlags (Instruction * I, bool Signed)

    Defined at line 1365 of file llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp

  • bool isPointerValueDeadOnEntryToFunction (const Function * F, GlobalValue * GV, function_ref<DominatorTree &(Function &)> LookupDomTree)

    Defined at line 1365 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void rewritePHIsForCleanupPad (BasicBlock * CleanupPadBB, CleanupPadInst * CleanupPad)

    Rewrites the PHI Nodes in a cleanuppad.

    Defined at line 1365 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • int getAllPredicates (ArrayRef<TransVariant> Variants, unsigned int ProcId)

    Defined at line 1366 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • void ComputeCrossModuleImportForModuleFromIndexForTest (StringRef ModulePath, const ModuleSummaryIndex & Index, FunctionImporter::ImportMapTy & ImportList)

    Mark all external summaries in

    for import into the given module.

    Used for testing the case of distributed builds using a distributed index.

    will be populated with a map that can be passed to

    FunctionImporter::importFunctions() above (see description there).

    Defined at line 1366 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • Value * reassociateMinMaxWithConstants (IntrinsicInst * II, IRBuilderBase & Builder, const SimplifyQuery & SQ)

    If this min/max has a constant operand and an operand that is a matching

    min/max with a constant operand, constant-fold the 2 constant operands.

    Defined at line 1366 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • bool isDefinedInsideLoopRegions (const VPValue * VPV)

    Returns true if there is a vector loop region and

    is defined in a

    loop region.

    Defined at line 1367 of file llvm/lib/Transforms/Vectorize/VPlan.cpp

  • LLVMNamedMDNodeRef LLVMGetFirstNamedMetadata (LLVMModuleRef M)

    Obtain an iterator to the first NamedMDNode in a Module.

    Defined at line 1367 of file llvm/lib/IR/Core.cpp

  • unsigned int getEncodedVisibility (const GlobalValue & GV)

    Defined at line 1367 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • PointerUnion unwrapExprVar (LLVMMetadataRef MD)

    MD may be nullptr, a DIExpression or DIVariable.

    Defined at line 1367 of file llvm/lib/IR/DebugInfo.cpp

  • void generateReproducer (CmpInst * Cond, Module * M, ArrayRef<ReproducerEntry> Stack, ConstraintInfo & Info, DominatorTree & DT)

    Helper function to generate a reproducer function for simplifying

    The reproducer function contains a series of

    .assume calls, one for

    each condition in

    For each condition, the operand instruction are

    cloned until we reach operands that have an entry in

    Those

    will then be added as function arguments.

    is used to order cloned

    instructions. The reproducer function will get added to

    if it is

    non-null. Otherwise no reproducer function is generated.

    Defined at line 1369 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • bool checkIfSafeAddSequence (const APInt & IdxDiff, Instruction * AddOpA, unsigned int MatchingOpIdxA, Instruction * AddOpB, unsigned int MatchingOpIdxB, bool Signed)

    Defined at line 1371 of file llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp

  • bool isSwiftError (const Value * V)

    Defined at line 1372 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • bool hasExceptionPointerOrCodeUser (const CatchPadInst * CPI)

    Defined at line 1372 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • Value * simplifyRightShift (BinaryOps Opcode, Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an LShr or AShr, see if we can fold the result. If not,

    this returns null.

    Defined at line 1372 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Instruction * rematerializeChain (ArrayRef<Instruction *> ChainToBase, ilist_iterator_w_bits InsertBefore, Value * RootOfChain, Value * AlternateLiveBase)

    Utility function which clones all instructions from "ChainToBase"

    and inserts them before "InsertBefore". Returns rematerialized value

    which should be used after statepoint.

    Defined at line 1372 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void ARM64FindSegmentsInFunction (MCStreamer & streamer, WinEH::FrameInfo * info, int64_t RawFuncLength)

    Defined at line 1372 of file llvm/lib/MC/MCWin64EH.cpp

  • void AddParamAndFnBasicAttributes (const CallBase & CB, ValueToValueMapTy & VMap, ClonedCodeInfo & InlinedFunctionInfo)

    Add attributes from CB params and Fn attributes that can always be propagated

    to the corresponding argument / inner callbases.

    Defined at line 1372 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool isUnsupportedAMDGPUAddrspace (Value * Addr)

    Defined at line 1373 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • void targetParallelCallback (OpenMPIRBuilder * OMPIRBuilder, Function & OutlinedFn, Function * OuterFn, BasicBlock * OuterAllocaBB, Value * Ident, Value * IfCondition, Value * NumThreads, Instruction * PrivTID, AllocaInst * PrivTIDAddr, Value * ThreadID, const SmallVector<Instruction *, 4> & ToBeDeleted)

    Callback used to create OpenMP runtime calls to support

    omp parallel clause for the device.

    We need to use this callback to replace call to the OutlinedFn in OuterFn

    by the call to the OpenMP DeviceRTL runtime function (kmpc_parallel_60)

    Defined at line 1373 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • int getRelocsMap (const object::ObjectFile & Obj)

    Returns a map from sections to their relocations.

    Defined at line 1374 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void emitEncodingByte (MCObjectStreamer & Streamer, unsigned int Encoding)

    Defined at line 1376 of file llvm/lib/MC/MCDwarf.cpp

  • bool EliminateDuplicatePHINodesNaiveImpl (BasicBlock * BB, SmallPtrSetImpl<PHINode *> & ToRemove)

    Defined at line 1376 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool isCopyCompatibleType (LLT SrcTy, LLT DstTy)

    Check if we can use a basic COPY instruction between the two types.

    We're currently building on top of the infrastructure using MVT, which loses

    pointer information in the CCValAssign. We accept copies from physical

    registers that have been reported as integers if it's to an equivalent sized

    pointer LLT.

    Defined at line 1377 of file llvm/lib/CodeGen/GlobalISel/CallLowering.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateDynamicArrayType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, unsigned int LineNo, LLVMMetadataRef File, uint64_t Size, uint32_t AlignInBits, LLVMMetadataRef Ty, LLVMMetadataRef * Subscripts, unsigned int NumSubscripts, LLVMMetadataRef DataLocation, LLVMMetadataRef Associated, LLVMMetadataRef Allocated, LLVMMetadataRef Rank, LLVMMetadataRef BitStride)

    Create debugging information entry for a dynamic array.

    Parameters

    Builder The DIBuilder.
    Size Array size.
    AlignInBits Alignment.
    Ty Element type.
    Subscripts Subscripts.
    NumSubscripts Number of subscripts.
    DataLocation DataLocation. (DIVariable, DIExpression or NULL)
    Associated Associated. (DIVariable, DIExpression or NULL)
    Allocated Allocated. (DIVariable, DIExpression or NULL)
    Rank Rank. (DIVariable, DIExpression or NULL)
    BitStride BitStride.

    Defined at line 1377 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMNamedMDNodeRef LLVMGetLastNamedMetadata (LLVMModuleRef M)

    Obtain an iterator to the last NamedMDNode in a Module.

    Defined at line 1375 of file llvm/lib/IR/Core.cpp

  • bool isDecodableInstruction (const Record * InstDef)

    Checks if the given target-specific non-pseudo instruction

    is a candidate for decoding.

    Defined at line 1376 of file llvm/utils/TableGen/DecoderEmitter.cpp

  • unsigned int getEncodedDLLStorageClass (const GlobalValue & GV)

    Defined at line 1376 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • AtomicOrdering getDecodedOrdering (unsigned int Val)

    Defined at line 1379 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • unsigned int getSetupCost (const SCEV * Reg, unsigned int Depth)

    Defined at line 1380 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void initializeDefaultRegisterAllocatorOnce ()

    Defined at line 1382 of file llvm/lib/CodeGen/TargetPassConfig.cpp

  • void unionWithMinMaxIntrinsicClamp (const IntrinsicInst * II, KnownBits & Known)

    Defined at line 1382 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isSupportedAddrspace (const Triple & TargetTriple, Value * Addr)

    Defined at line 1382 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • bool isValidEncoding (const Record * EncodingDef)

    Checks if the given encoding is valid.

    Defined at line 1382 of file llvm/utils/TableGen/DecoderEmitter.cpp

  • Instruction * foldInsEltIntoSplat (InsertElementInst & InsElt)

    Try to fold an insert element into an existing splat shuffle by changing

    the shuffle's mask to include the index of this insert element.

    Defined at line 1382 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • Constant * getFuncAddrForProfData (Function * Fn)

    Defined at line 1382 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • LLVMNamedMDNodeRef LLVMGetNextNamedMetadata (LLVMNamedMDNodeRef NamedMDNode)

    Advance a NamedMDNode iterator to the next NamedMDNode.

    Returns NULL if the iterator was already at the end and there are no more

    named metadata nodes.

    Defined at line 1383 of file llvm/lib/IR/Core.cpp

  • vector getSectionFlagsForTarget (unsigned int EOSAbi, unsigned int EMachine)

    Defined at line 1383 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • Value * foldDependentIVs (PHINode & PN, IRBuilderBase & Builder)

    Fold iv = phi(start, iv.next = iv2.next op start)

    where iv2 = phi(iv2.start, iv2.next = iv2 + iv2.step)

    and iv2.start op start = start

    to iv = iv2 op start

    Defined at line 1383 of file llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp

  • unsigned int X86ChooseCmpImmediateOpcode (EVT VT, const ConstantInt * RHSC)

    If we have a comparison with RHS as the RHS of the comparison, return an

    opcode that works for the compare (e.g. CMP32ri) otherwise return 0.

    Defined at line 1384 of file llvm/lib/Target/X86/X86FastISel.cpp

  • void clone_symbols (LLVMModuleRef Src, LLVMModuleRef M)

    Defined at line 1384 of file llvm/tools/llvm-c-test/echo.cpp

  • unsigned int getEncodedThreadLocalMode (const GlobalValue & GV)

    Defined at line 1385 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • void computeKnownBitsFromOperator (const Operator * I, const APInt & DemandedElts, KnownBits & Known, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 1390 of file llvm/lib/Analysis/ValueTracking.cpp

  • LLVMNamedMDNodeRef LLVMGetPreviousNamedMetadata (LLVMNamedMDNodeRef NamedMDNode)

    Decrement a NamedMDNode iterator to the previous NamedMDNode.

    Returns NULL if the iterator was already at the beginning and there are

    no previous named metadata nodes.

    Defined at line 1391 of file llvm/lib/IR/Core.cpp

  • bool wasEscaped (StringRef::iterator First, StringRef::iterator Position)

    Forbidding inlining improves performance by roughly 20%.

    FIXME: Remove once llvm optimizes this to the faster version without hints.

    Defined at line 1386 of file llvm/lib/Support/YAMLParser.cpp

  • void annotateFunctionWithHashMismatch (Function & F, LLVMContext & ctx)

    Emit function metadata indicating PGO profile mismatch.

    Defined at line 1387 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • void mapWasmLandingPadIndex (MachineBasicBlock * MBB, const CatchPadInst * CPI)

    wasm.landingpad.index intrinsic is for associating a landing pad index number

    with a catchpad instruction. Retrieve the landing pad index in the intrinsic

    and store the mapping in the function.

    Defined at line 1387 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool isAngleBracketString (SMLoc & StrLoc, SMLoc & EndLoc)

    There is a gap between the AltMacro's documentation and the single quote

    implementation. GCC does not fully support this feature and so we will not

    support it.

    TODO: Adding single quote as a string.

    Defined at line 1389 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • bool TestForCodeGenCrash (const BugDriver & BD, Module * M)

    Defined at line 1391 of file llvm/tools/bugpoint/CrashDebugger.cpp

  • SelectionKind getDecodedComdatSelectionKind (unsigned int Val)

    Defined at line 1392 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool hasConflictingReferenceFlags (unsigned int Flags)

    Detect mutually exclusive flags.

    Defined at line 1393 of file llvm/lib/IR/Verifier.cpp

  • void LLVMReplaceArrays (LLVMDIBuilderRef Builder, LLVMMetadataRef * T, LLVMMetadataRef * Elements, unsigned int NumElements)

    Replace arrays.

    Defined at line 1393 of file llvm/lib/IR/DebugInfo.cpp

  • bool hasUndefContents (MemorySSA * MSSA, BatchAAResults & AA, Value * V, MemoryDef * Def)

    Determine whether the pointer V had only undefined content (due to Def),

    either because it was freshly alloca'd or started its lifetime.

    Defined at line 1393 of file llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

  • bool SinkCast (CastInst * CI)

    Sink the specified cast instruction into its user blocks.

    Defined at line 1393 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • void updateValueInfoForIndirectCalls (ModuleSummaryIndex & Index, FunctionSummary * FS)

    For SamplePGO, the indirect call targets for local functions will

    have its original name annotated in profile. We try to find the

    corresponding PGOFuncName as the GUID, and fix up the edges

    accordingly.

    Defined at line 1394 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • unsigned int getEncodedComdatSelectionKind (const Comdat & C)

    Defined at line 1396 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool equivalentAddressValues (Value * A, Value * B)

    equivalentAddressValues - Test if A and B will obviously have the same

    value. This includes recognizing that %t0 and %t1 will have the same

    value in code like this:

    %t0 = getelementptr

    @

    a, 0, 3

    store i32 0, i32* %t0

    %t1 = getelementptr

    @

    a, 0, 3

    %t2 = load i32* %t1

    Defined at line 1397 of file llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp

  • Instruction * reassociateMinMaxWithConstantInOperand (IntrinsicInst * II, InstCombiner::BuilderTy & Builder)

    If this min/max has a matching min/max operand with a constant, try to push

    the constant operand into this instruction. This can enable more folds.

    Defined at line 1399 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateUnionType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits,  Flags, LLVMMetadataRef * Elements, unsigned int NumElements, unsigned int RunTimeLang, const char * UniqueId, size_t UniqueIdLen)

    Create debugging information entry for a union.

    Parameters

    Builder The DIBuilder.
    Scope Scope in which this union is defined.
    Name Union name.
    NameLen Length of union name.
    File File where this member is defined.
    LineNumber Line number.
    SizeInBits Member size.
    AlignInBits Member alignment.
    Flags Flags to encode member attribute, e.g. private
    Elements Union elements.
    NumElements Number of union elements.
    RunTimeLang Optional parameter, Objective-C runtime version.
    UniqueId A unique identifier for the union.
    UniqueIdLen Length of unique identifier.

    Defined at line 1401 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMNamedMDNodeRef LLVMGetNamedMetadata (LLVMModuleRef M, const char * Name, size_t NameLen)

    Retrieve a NamedMDNode with the given name, returning NULL if no such

    node exists.

    Defined at line 1399 of file llvm/lib/IR/Core.cpp

  • Value * simplifyShlInst (Value * Op0, Value * Op1, bool IsNSW, bool IsNUW, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an Shl, see if we can fold the result.

    If not, this returns null.

    Defined at line 1401 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool shouldAdjustVA (const SectionRef & Section)

    Used for --adjust-vma to check if address should be adjusted by the

    specified value for a given section.

    For ELF we do not adjust non-allocatable sections like debug ones,

    because they are not loadable.

    TODO: implement for other file formats.

    Defined at line 1403 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void PrintDylibs (MachOObjectFile * O, bool JustId)

    Defined at line 1404 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void computeScheduledInsts (const SwingSchedulerDAG * SSD, SMSchedule & Schedule, int & OrderedInsts, int & Stages)

    Create an instruction stream that represents a single iteration and stage of

    each instruction. This function differs from SMSchedule::finalizeSchedule in

    that this doesn't have any side-effect to SwingSchedulerDAG. That is, this

    function is an approximation of SMSchedule::finalizeSchedule with all

    non-const operations removed.

    Defined at line 1405 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • basic_string angleBracketString (StringRef AltMacroStr)

    creating a string without the escape characters '!'.

    Defined at line 1407 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • template <typename ExtendOpTy>
    const SCEV * getExtendAddRecStart (const SCEVAddRecExpr * AR, Type * Ty, ScalarEvolution * SE, unsigned int Depth)

    Get the normalized zero or sign extended expression for this AddRec's Start.

    Defined at line 1407 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • FastMathFlags getDecodedFastMathFlags (unsigned int Val)

    Defined at line 1408 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool CHRScopeSorter (CHRScope * Scope1, CHRScope * Scope2)

    Defined at line 1409 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • uint32_t getBBAddrMapMetadata (const MachineBasicBlock & MBB)

    Returns the BB metadata to be emitted in the SHT_LLVM_BB_ADDR_MAP section

    for a given basic block. This can be used to capture more precise profile

    information.

    Defined at line 1409 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • SmallBitVector gatherFileIDs (StringRef SourceFile, const FunctionRecord & Function)

    Defined at line 1409 of file llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  • basic_string getAllocTypeString (uint8_t AllocTypes)

    Defined at line 1409 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • AliasResult MergeAliasResults (AliasResult A, AliasResult B)

    Defined at line 1410 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • bool optimizeLoopExitWithUnknownExitCount (const Loop * L, BranchInst * BI, BasicBlock * ExitingBB, const SCEV * MaxIter, bool SkipLastIter, ScalarEvolution * SE, SCEVExpander & Rewriter, SmallVectorImpl<WeakTrackingVH> & DeadInsts)

    Defined at line 1410 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • char getMappingSymbolKind (ArrayRef<MappingSymbolPair> MappingSymbols, uint64_t Address)

    Defined at line 1411 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • unsigned int getEncodedUnnamedAddr (const GlobalValue & GV)

    Defined at line 1412 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool EliminateDuplicatePHINodesSetBasedImpl (BasicBlock * BB, SmallPtrSetImpl<PHINode *> & ToRemove)

    Defined at line 1412 of file llvm/lib/Transforms/Utils/Local.cpp

  • Value * stripSignOnlyFPOps (Value * Val)

    Ignore all operations which only change the sign of a value, returning the

    underlying magnitude value.

    Defined at line 1413 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • CallInst * replaceCalledFunction (Module & M, OutlinableRegion & Region)

    Replace the extracted function in the Region with a call to the overall

    function constructed from the deduplicated similar regions, replacing and

    remapping the values passed to the extracted function as arguments to the

    new arguments of the overall function.

    Parameters

    M [in] - The module to outline from.
    Region [in] - The regions of extracted code to be replaced with a new function.

    Defined at line 1413 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void setArgExtAttr (Function & F, unsigned int ArgNo, const TargetLibraryInfo & TLI, bool Signed)

    Defined at line 1415 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void explain ()

    Defined at line 1415 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • Value * canonicalizeSPF (ICmpInst & Cmp, Value * TrueVal, Value * FalseVal, InstCombinerImpl & IC)

    Defined at line 1415 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • basic_string adjustInlineAsm (const std::string & InlineAsm, const Triple & Triple)

    Return InlineAsm adjusted with target-specific directives if required.

    For ARM and Thumb, we have to add directives to select the appropriate ISA

    to support mixing module-level inline assembly from ARM and Thumb modules.

    Defined at line 1416 of file llvm/lib/Linker/IRMover.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateArrayType (LLVMDIBuilderRef Builder, uint64_t Size, uint32_t AlignInBits, LLVMMetadataRef Ty, LLVMMetadataRef * Subscripts, unsigned int NumSubscripts)

    Create debugging information entry for an array.

    Parameters

    Builder The DIBuilder.
    Size Array size.
    AlignInBits Alignment.
    Ty Element type.
    Subscripts Subscripts.
    NumSubscripts Number of subscripts.

    Defined at line 1416 of file llvm/lib/IR/DebugInfo.cpp

  • bool needsRuntimeRegistrationOfSectionRange (const Triple & TT)

    Defined at line 1417 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • Features getBBAddrMapFeature (const MachineFunction & MF, int NumMBBSectionRanges, bool HasCalls, const CFGProfile * FuncCFGProfile)

    Defined at line 1418 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • optional findMainViewFileID (const FunctionRecord & Function)

    Return the ID of the file where the definition of the function is located.

    Defined at line 1419 of file llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  • Instruction * foldInsEltIntoIdentityShuffle (InsertElementInst & InsElt)

    Try to fold an extract+insert element into an existing identity shuffle by

    changing the shuffle's mask to include the index of this insert element.

    Defined at line 1419 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • VersionTuple targetVersionOrMinimumSupportedOSVersion (const Triple & Target, VersionTuple TargetVersion)

    Defined at line 1420 of file llvm/lib/MC/MCStreamer.cpp

  • basic_string getGNUFlags (unsigned int EOSAbi, unsigned int EMachine, uint64_t Flags)

    Defined at line 1420 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool matchIsNotNaN (Predicate P, Value * LHS, Value * RHS)

    Matches canonical form of isnan, fcmp ord x, 0

    Defined at line 1421 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void setRetExtAttr (Function & F, const TargetLibraryInfo & TLI, bool Signed)

    Defined at line 1422 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void hoistValue (Value * V, Instruction * HoistPoint, Region * R, HoistStopMapTy & HoistStopMap, DenseSet<Instruction *> & HoistedSet, DenseSet<PHINode *> & TrivialPHIs, DominatorTree & DT)

    Return true if V is already hoisted or was hoisted (along with its operands)

    to the insert point.

    Defined at line 1422 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • DIAssignID * getIDFromInst (const Instruction & I)

    Defined at line 1423 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • Loop * cloneLoopNest (Loop & OrigRootL, Loop * RootParentL, const ValueToValueMapTy & VMap, LoopInfo & LI)

    Recursively clone the specified loop and all of its children.

    The target parent loop for the clone should be provided, or can be null if

    the clone is a top-level loop. While cloning, all the blocks are mapped

    with the provided value map. The entire original loop must be present in

    the value map. The cloned loop is returned.

    Defined at line 1423 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • uint64_t dumpARMELFData (uint64_t SectionAddr, uint64_t Index, uint64_t End, const ObjectFile & Obj, ArrayRef Bytes, ArrayRef<MappingSymbolPair> MappingSymbols, const MCSubtargetInfo & STI, raw_ostream & OS)

    Defined at line 1424 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • int ranlib_main (int argc, char ** argv)

    Defined at line 1424 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • const char * printImplicitRegisterFlag (const MachineOperand & MO)

    Defined at line 1425 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • bool matchUnorderedInfCompare (Predicate P, Value * LHS, Value * RHS)

    Matches fcmp u__ x, +/-inf

    Defined at line 1426 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void exportStream ()

    Defined at line 1426 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • DIAssignID * getIDFromMarker (const DbgVariableRecord & DVR)

    Defined at line 1427 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateVectorType (LLVMDIBuilderRef Builder, uint64_t Size, uint32_t AlignInBits, LLVMMetadataRef Ty, LLVMMetadataRef * Subscripts, unsigned int NumSubscripts)

    Create debugging information entry for a vector type.

    Parameters

    Builder The DIBuilder.
    Size Vector size.
    AlignInBits Alignment.
    Ty Element type.
    Subscripts Subscripts.
    NumSubscripts Number of subscripts.

    Defined at line 1427 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMNamedMDNodeRef LLVMGetOrInsertNamedMetadata (LLVMModuleRef M, const char * Name, size_t NameLen)

    Retrieve a NamedMDNode with the given name, creating a new node if no such

    node exists.

    Defined at line 1404 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetNamedMetadataName (LLVMNamedMDNodeRef NamedMD, size_t * NameLen)

    Retrieve the name of a NamedMDNode.

    Defined at line 1409 of file llvm/lib/IR/Core.cpp

  • void SplitLandingPadPredecessorsImpl (BasicBlock * OrigBB, ArrayRef Preds, const char * Suffix1, const char * Suffix2, SmallVectorImpl<BasicBlock *> & NewBBs, DomTreeUpdater * DTU, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)

    Defined at line 1405 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  • MCVersionMinType getMachoVersionMinLoadCommandType (const Triple & Target)

    Defined at line 1427 of file llvm/lib/MC/MCStreamer.cpp

  • VersionTuple parseVersionFromName (StringRef Name)

    Defined at line 1428 of file llvm/lib/TargetParser/Triple.cpp

  • Instruction * factorizeMinMaxTree (IntrinsicInst * II)

    Reduce a sequence of min/max intrinsics with a common operand.

    Defined at line 1428 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • void upgradeDLLImportExportLinkage (GlobalValue * GV, unsigned int Val)

    Defined at line 1429 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • BasicBlock * normalizeForInvokeSafepoint (BasicBlock * BB, BasicBlock * InvokeParent, DominatorTree & DT)

    When inserting gc.relocate and gc.result calls, we need to ensure there are

    no uses of the original value / return value between the gc.statepoint and

    the gc.relocate / gc.result call. One case which can arise is a phi node

    starting one of the successor blocks. We also need to be able to insert the

    gc.relocates only on the path which goes through the statepoint. We might

    need to split an edge to make this possible.

    Defined at line 1429 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • basic_string getRegisterName (const TargetRegisterInfo * TRI, Register Reg)

    Defined at line 1430 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • Instruction * findInstructionWithOpcode (ArrayRef VL, unsigned int Opcode)

    Find an instruction with a specific opcode in VL.

    Parameters

    VL Array of values to search through. Must contain only Instructions and PoisonValues.
    Opcode The instruction opcode to search for

    Defined at line 1430 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • Expected getMemProfRecordV2 (const memprof::IndexedMemProfRecord & IndexedRecord, MemProfFrameHashTable & MemProfFrameTable, MemProfCallStackHashTable & MemProfCallStackTable)

    Defined at line 1430 of file llvm/lib/ProfileData/InstrProfReader.cpp

  • ArrayRef<MCPhysReg> get64BitArgumentGPRs (CallingConv::ID CallConv, const X86Subtarget & Subtarget)

    FIXME: Get this from tablegen.

    Defined at line 1432 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • optional findMainViewFileID (StringRef SourceFile, const FunctionRecord & Function)

    Check if SourceFile is the file that contains the definition of

    the Function. Return the ID of the file in that case or std::nullopt

    otherwise.

    Defined at line 1434 of file llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  • Value * matchIsFiniteTest (InstCombiner::BuilderTy & Builder, FCmpInst * LHS, FCmpInst * RHS)

    and (fcmp ord x, 0), (fcmp u* x, inf) -> fcmp o* x, inf

    Clang emits this pattern for doing an isfinite check in __builtin_isnormal.

    Defined at line 1434 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool handleDanglingVariadicDebugInfo (SelectionDAG & DAG, DILocalVariable * Variable, DebugLoc DL, unsigned int Order, SmallVectorImpl<Value *> & Values, DIExpression * Expression)

    Defined at line 1434 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • bool forwardStoredOnceStore (GlobalVariable * GV, const StoreInst * StoredOnceStore, function_ref<DominatorTree &(Function &)> LookupDomTree)

    For a global variable with one store, if the store dominates any loads,

    those loads will always load the stored value (as opposed to the

    initializer), even in the presence of recursion.

    Defined at line 1434 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool foldLibCalls (Instruction & I, TargetTransformInfo & TTI, TargetLibraryInfo & TLI, AssumptionCache & AC, DominatorTree & DT, const DataLayout & DL, bool & MadeCFGChange)

    Defined at line 1434 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • unsigned int LLVMGetNamedMetadataNumOperands (LLVMModuleRef M, const char * Name)

    Obtain the number of operands for named metadata in a module.

    Defined at line 1435 of file llvm/lib/IR/Core.cpp

  • unsigned int getSrcIdx (const MachineInstr * MI, unsigned int SrcIdx)

    Defined at line 1435 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • bool canVectorize (const CharMatrix & DepMatrix, unsigned int LoopId)

    Return true if we can vectorize the loop specified by

    Defined at line 1436 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • bool isImplicitOperandIn (const MachineOperand & ImplicitOperand, ArrayRef<ParsedMachineOperand> Operands)

    Return true if the parsed machine operands contain a given machine operand.

    Defined at line 1437 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateBasicType (LLVMDIBuilderRef Builder, const char * Name, size_t NameLen, uint64_t SizeInBits, LLVMDWARFTypeEncoding Encoding,  Flags)

    Create debugging information entry for a basic

    type.

    Parameters

    Builder The DIBuilder.
    Name Type name.
    NameLen Length of type name.
    SizeInBits Size of the type.
    Encoding DWARF encoding code, e.g.
    Flags Flags to encode optional attribute like endianity

    Defined at line 1438 of file llvm/lib/IR/DebugInfo.cpp

  • optional matchBinaryOp (Instruction * Op)

    Defined at line 1438 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp

  • unsigned int attrIdxToArrayIdx (unsigned int Index)

    Map from AttributeList index to the internal array index. Adding one happens

    to work, because -1 wraps around to 0.

    Defined at line 1440 of file llvm/lib/IR/Attributes.cpp

  • void cleanupSinglePredPHIs (Function & F)

    Defined at line 1440 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • unsigned int getVectorTypeBreakdownMVT (MVT VT, MVT & IntermediateVT, unsigned int & NumIntermediates, MVT & RegisterVT, TargetLoweringBase * TLI)

    Defined at line 1440 of file llvm/lib/CodeGen/TargetLoweringBase.cpp

  • bool isExpansion (const CountedRegion & R, unsigned int FileID)

    Defined at line 1442 of file llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  • void LLVMGetNamedMetadataOperands (LLVMModuleRef M, const char * Name, LLVMValueRef * Dest)

    Obtain the named metadata operands for a module.

    The passed LLVMValueRef pointer should refer to an array of

    LLVMValueRef at least LLVMGetNamedMetadataNumOperands long. This

    array will be populated with the LLVMValueRef instances. Each

    instance corresponds to a llvm::MDNode.

    Defined at line 1442 of file llvm/lib/IR/Core.cpp

  • Value * simplifyLShrInst (Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an LShr, see if we can fold the result.

    If not, this returns null.

    Defined at line 1442 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • BranchProbability getLayoutSuccessorProbThreshold (const MachineBasicBlock * BB)

    When profile is not present, return the StaticLikelyProb.

    When profile is available, we need to handle the triangle-shape CFG.

    Defined at line 1444 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • bool areCompatibleCmpOps (Value * BaseOp0, Value * BaseOp1, Value * Op0, Value * Op1, const TargetLibraryInfo & TLI)

    Checks if the provided operands of 2 cmp instructions are compatible, i.e.

    compatible instructions or constants, or just some other regular values.

    Defined at line 1445 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool MemOperandsHaveAlias (const MachineFrameInfo & MFI, BatchAAResults * AA, bool UseTBAA, const MachineMemOperand * MMOa, const MachineMemOperand * MMOb)

    Defined at line 1446 of file llvm/lib/CodeGen/MachineInstr.cpp

  • bool isImmAllOnesAllZerosMatch (const TreePatternNode & P)

    ===----------------------------------------------------------------------===//

    PatternToMatch implementation

    Defined at line 1447 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void printDstRegisterName (raw_ostream & CS, const MachineInstr * MI, unsigned int SrcOpIdx)

    Defined at line 1447 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • LLVMMetadataRef LLVMDIBuilderCreatePointerType (LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeTy, uint64_t SizeInBits, uint32_t AlignInBits, unsigned int AddressSpace, const char * Name, size_t NameLen)

    Create debugging information entry for a pointer.

    Parameters

    Builder The DIBuilder.
    PointeeTy Type pointed by this pointer.
    SizeInBits Size.
    AlignInBits Alignment. (optional, pass 0 to ignore)
    AddressSpace DWARF address space. (optional, pass 0 to ignore)
    Name Pointer type name. (optional)
    NameLen Length of pointer type name. (optional)

    Defined at line 1448 of file llvm/lib/IR/DebugInfo.cpp

  • VersionTuple getMachoBuildVersionSupportedOS (const Triple & Target)

    Defined at line 1448 of file llvm/lib/MC/MCStreamer.cpp

  • Instruction * factorizeMathWithShlOps (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    This is a specialization of a more general transform from

    foldUsingDistributiveLaws. If that code can be made to work optimally

    for multi-use cases or propagating nsw/nuw, then we would not need this.

    Defined at line 1448 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • bool isFunctionMallocLike (Function * F, const SCCNodeSet & SCCNodes)

    Tests whether a function is "malloc-like".

    A function is "malloc-like" if it returns either null or a pointer that

    doesn't alias any other pointer visible to the caller.

    Defined at line 1448 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • const char * locStr (LocKind Loc)

    Defined at line 1449 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • ArrayRef<MCPhysReg> get64BitArgumentXMMs (MachineFunction & MF, CallingConv::ID CallConv, const X86Subtarget & Subtarget)

    FIXME: Get this from tablegen.

    Defined at line 1450 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • void addRegionIntoQueue (Region & R, std::vector<Region *> & Regions)

    Defined at line 1452 of file llvm/lib/Transforms/Scalar/StructurizeCFG.cpp

  • void LLVMAddNamedMetadataOperand (LLVMModuleRef M, const char * Name, LLVMValueRef Val)

    Add an operand to named metadata.

    Defined at line 1452 of file llvm/lib/IR/Core.cpp

  • void supplementInstrProfile (const WeightedFileVector & Inputs, StringRef SampleFilename, bool OutputSparse, unsigned int SupplMinSizeThreshold, float ZeroCounterThreshold, unsigned int InstrProfColdThreshold)

    The main function to supplement instr profile with sample profile.

    contains the instr profile.

    specifies the

    sample profile.

    specifies the output profile name.

    specifies the output profile format.

    specifies whether to generate sparse profile.

    specifies the minimal size for the functions whose profile will be

    adjusted.

    is the threshold to check whether

    a function contains too many zero counters and whether its profile

    should be dropped.

    is the user specified

    cold threshold which will override the cold threshold got from the

    instr profile summary.

    Defined at line 1452 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void dumpELFData (uint64_t SectionAddr, uint64_t Index, uint64_t End, ArrayRef Bytes, raw_ostream & OS)

    Defined at line 1453 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void ARM64EmitUnwindInfoForSegment (MCStreamer & streamer, WinEH::FrameInfo * info, WinEH::FrameInfo::Segment & Seg, bool TryPacked)

    Defined at line 1453 of file llvm/lib/MC/MCWin64EH.cpp

  • bool isTiedToNotUndef (const MachineOperand & MO)

    Returns true if MO is tied and the operand it's tied to is not Undef (not

    Undef is not the same thing as Def).

    Defined at line 1456 of file llvm/lib/CodeGen/RegAllocFast.cpp

  • bool canFallThroughTo (MachineBasicBlock & MBB, MachineBasicBlock & ToMBB)

    Returns true either if ToMBB is the next block after MBB or that all the

    intervening blocks are empty (given MBB can fall through to its next block).

    Defined at line 1457 of file llvm/lib/CodeGen/IfConversion.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateStructType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits,  Flags, LLVMMetadataRef DerivedFrom, LLVMMetadataRef * Elements, unsigned int NumElements, unsigned int RunTimeLang, LLVMMetadataRef VTableHolder, const char * UniqueId, size_t UniqueIdLen)

    Create debugging information entry for a struct.

    Parameters

    Builder The DIBuilder.
    Scope Scope in which this struct is defined.
    Name Struct name.
    NameLen Struct name length.
    File File where this member is defined.
    LineNumber Line number.
    SizeInBits Member size.
    AlignInBits Member alignment.
    Flags Flags to encode member attribute, e.g. private
    Elements Struct elements.
    NumElements Number of struct elements.
    RunTimeLang Optional parameter, Objective-C runtime version.
    VTableHolder The object containing the vtable for the struct.
    UniqueId A unique identifier for the struct.
    UniqueIdLen Length of the unique identifier for the struct.

    Defined at line 1457 of file llvm/lib/IR/DebugInfo.cpp

  • AttributeList legalizeCallAttributes (CallBase * Call, bool IsMemIntrinsic, AttributeList StatepointAL)

    Create new attribute set containing only attributes which can be transferred

    from the original call to the safepoint.

    Defined at line 1457 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void rewritePHIs (BasicBlock & BB)

    Defined at line 1457 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • bool isCmpSameOrSwapped (const CmpInst * BaseCI, const CmpInst * CI, const TargetLibraryInfo & TLI)

    Defined at line 1459 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • ValueLatticeElement getValueFromOverflowCondition (Value * Val, WithOverflowInst * WO, bool IsTrueDest)

    Handle conditions of the form

    extractvalue(op.with.overflow(%x, C), 1).

    Defined at line 1459 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • void printRpaths (MachOObjectFile * O)

    Defined at line 1461 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool OptimizeNoopCopyExpression (CastInst * CI, const TargetLowering & TLI, const DataLayout & DL)

    If the specified cast instruction is a noop copy (e.g. it's casting from

    one pointer type to another, i32->i8 on PPC), sink it into user blocks to

    reduce the number of virtual registers that must be created and coalesced.

    Return true if any changes are made.

    Defined at line 1461 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • unsigned int getPatternSize (const TreePatternNode & P, const CodeGenDAGPatterns & CGP)

    getPatternSize - Return the 'size' of this pattern. We want to match large

    patterns before small ones. This is used to determine the size of a

    pattern.

    Defined at line 1461 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void hostParallelCallback (OpenMPIRBuilder * OMPIRBuilder, Function & OutlinedFn, Function * OuterFn, Value * Ident, Value * IfCondition, Instruction * PrivTID, AllocaInst * PrivTIDAddr, const SmallVector<Instruction *, 4> & ToBeDeleted)

    Callback used to create OpenMP runtime calls to support

    omp parallel clause for the host.

    We need to use this callback to replace call to the OutlinedFn in OuterFn

    by the call to the OpenMP host runtime function ( __kmpc_fork_call[_if])

    Defined at line 1461 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void collectReleaseInsertPts (const BlotMapVector<Value *, RRInfo> & Retains, DenseMap<const Instruction *, SmallPtrSet<const Value *, 2>> & ReleaseInsertPtToRCIdentityRoots)

    Fill ReleaseInsertPtToRCIdentityRoots, which is a map from insertion points

    to the set of RC identity roots that would be released by the release calls

    moved to the insertion points.

    Defined at line 1462 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • PointerUnion getNextNode (const DbgRecord * DVR)

    Defined at line 1463 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • bool parseRange (StringRef Str, std::optional<opts::bytes::NumberRange> & Parsed)

    Defined at line 1465 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • void printShuffleMask (raw_ostream & CS, StringRef Src1Name, StringRef Src2Name, ArrayRef<int> Mask)

    Defined at line 1465 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • void unbundleSingleMI (MachineInstr * MI)

    Prepare MI to be removed from its bundle. This fixes bundle flags on MI's

    neighboring instructions so the bundle won't be broken by removing MI.

    Defined at line 1467 of file llvm/lib/CodeGen/MachineBasicBlock.cpp

  • StringEncoding getStringEncoding (StringRef Str)

    Determine the encoding to use for the given string name and length.

    Defined at line 1468 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • uint64_t getOffsetFromIndices (const User & U, const DataLayout & DL)

    Defined at line 1468 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • PointerUnion getNextNode (const Instruction * Inst)

    Defined at line 1469 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • bool processInternalGlobal (GlobalVariable * GV, const GlobalStatus & GS, function_ref<TargetTransformInfo &(Function &)> GetTTI, function_ref<TargetLibraryInfo &(Function &)> GetTLI, function_ref<DominatorTree &(Function &)> LookupDomTree)

    Analyze the specified global variable and optimize

    it if possible. If we make a change, return true.

    Defined at line 1469 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void initializeIRSimilarityIdentifierWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1470 of file llvm/lib/Analysis/IRSimilarityIdentifier.cpp

  • void hoistScopeConditions (CHRScope * Scope, Instruction * HoistPoint, DenseSet<PHINode *> & TrivialPHIs, DominatorTree & DT)

    Hoist the dependent condition values of the branches and the selects in the

    scope to the insert point.

    Defined at line 1470 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • BasicBlock * findMostPopularDest (BasicBlock * BB, const SmallVectorImpl<std::pair<BasicBlock *, BasicBlock *>> & PredToDestList)

    findMostPopularDest - The specified list contains multiple possible

    threadable destinations. Pick the one that occurs the most frequently in

    the list.

    Defined at line 1470 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • bool isPathAbsoluteOnWindowsOrPosix (const Twine & Path)

    Defined at line 1471 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp

  • Instruction * sinkThroughTriviallyReplaceablePHI (PHINode * TPN, Instruction * I, LoopInfo * LI, int & SunkCopies, const LoopSafetyInfo * SafetyInfo, const Loop * CurLoop, MemorySSAUpdater & MSSAU)

    Defined at line 1472 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool shouldRecordVTableAddr (GlobalVariable * GV)

    Defined at line 1472 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateUnspecifiedType (LLVMDIBuilderRef Builder, const char * Name, size_t NameLen)

    Create a DWARF unspecified type.

    Parameters

    Builder The DIBuilder.
    Name The unspecified type's name.
    NameLen Length of type name.

    Defined at line 1483 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateMemberType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNo, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits,  Flags, LLVMMetadataRef Ty)

    Create debugging information entry for a member.

    Parameters

    Builder The DIBuilder.
    Scope Member scope.
    Name Member name.
    NameLen Length of member name.
    File File where this member is defined.
    LineNo Line number.
    SizeInBits Member size.
    AlignInBits Member alignment.
    OffsetInBits Member offset.
    Flags Flags to encode member attribute, e.g. private
    Ty Parent type.

    Defined at line 1473 of file llvm/lib/IR/DebugInfo.cpp

  • const char * LLVMGetDebugLocDirectory (LLVMValueRef Val, unsigned int * Length)

    Return the directory of the debug location for this value, which must be

    an llvm::Instruction, llvm::GlobalVariable, or llvm::Function.

    Defined at line 1462 of file llvm/lib/IR/Core.cpp

  • void CreateSymbolAddressMap (MachOObjectFile * O, SymbolAddressMap * AddrMap)

    Defined at line 1473 of file llvm/tools/llvm-objdump/MachODump.cpp

  • StringRef segmentTypeToString (unsigned int Arch, unsigned int Type)

    Defined at line 1473 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • PlatformType getMachoBuildVersionPlatformType (const Triple & Target)

    Defined at line 1474 of file llvm/lib/MC/MCStreamer.cpp

  • PointerUnion getNextNode (PointerUnion InsertPt)

    Defined at line 1475 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • bool hasDataSucc (const SUnit * SU)

    Defined at line 1475 of file llvm/lib/CodeGen/ScheduleDAGInstrs.cpp

  • bool isOpcodeRep (unsigned int Opcode)

    Return true if an opcode is part of the REP group of instructions

    Defined at line 1475 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • bool isSortedByValueNo (ArrayRef<CCValAssign> ArgLocs)

    Defined at line 1476 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • SmallVector<TrackingMDRef, 4> & getNMDOps (void * Operands)

    ===----------------------------------------------------------------------===//

    NamedMDNode implementation.

    Defined at line 1477 of file llvm/lib/IR/Metadata.cpp

  • Instruction * hoistInsEltConst (InsertElementInst & InsElt2, InstCombiner::BuilderTy & Builder)

    If we have an insertelement instruction feeding into another insertelement

    and the 2nd is inserting a constant into the vector, canonicalize that

    constant insertion before the insertion of a variable:

    insertelement (insertelement X, Y, IdxC1), ScalarC, IdxC2 -->

    insertelement (insertelement X, ScalarC, IdxC2), Y, IdxC1

    This has the potential of eliminating the 2nd insertelement instruction

    via constant folding of the scalar constant into a vector constant.

    Defined at line 1478 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • Value * simplifyAShrInst (Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an AShr, see if we can fold the result.

    If not, this returns null.

    Defined at line 1479 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • const SmallPtrSet<const Value *, 2> * getRCIdentityRootsFromReleaseInsertPt (const Instruction * InsertPt, const DenseMap<const Instruction *, SmallPtrSet<const Value *, 2>> & ReleaseInsertPtToRCIdentityRoots)

    Get the RC identity roots from an insertion point of an objc_release call.

    Return nullptr if the passed instruction isn't an insertion point.

    Defined at line 1480 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • const char * LLVMGetDebugLocFilename (LLVMValueRef Val, unsigned int * Length)

    Return the filename of the debug location for this value, which must be

    an llvm::Instruction, llvm::GlobalVariable, or llvm::Function.

    Defined at line 1486 of file llvm/lib/IR/Core.cpp

  • InstructionsState getSameOpcode (ArrayRef VL, const TargetLibraryInfo & TLI)

    Defined at line 1481 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void buildClonedLoops (Loop & OrigL, ArrayRef ExitBlocks, const ValueToValueMapTy & VMap, LoopInfo & LI, SmallVectorImpl<Loop *> & NonChildClonedLoops)

    Build the cloned loops of an original loop from unswitching.

    Because unswitching simplifies the CFG of the loop, this isn't a trivial

    operation. We need to re-verify that there even is a loop (as the backedge

    may not have been cloned), and even if there are remaining backedges the

    backedge set may be different. However, we know that each child loop is

    undisturbed, we only need to find where to place each child loop within

    either any parent loop or within a cloned version of the original loop.

    Because child loops may end up cloned outside of any cloned version of the

    original loop, multiple cloned sibling loops may be created. All of them

    are returned so that the newly introduced loop nest roots can be

    identified.

    Defined at line 1482 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • unsigned int serializeSanitizerMetadata (const GlobalValue::SanitizerMetadata & Meta)

    Defined at line 1484 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • Instruction * foldBoxMultiply (BinaryOperator & I)

    Reduce a sequence of masked half-width multiplies to a single multiply.

    ((XLow * YHigh) + (YLow * XHigh))

    <

    <

    HalfBits) + (XLow * YLow) --> X * Y

    Defined at line 1484 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • void InsertUncondBranch (MachineBasicBlock & MBB, MachineBasicBlock & ToMBB, const TargetInstrInfo * TII)

    Inserts an unconditional branch from

    to

    Defined at line 1486 of file llvm/lib/CodeGen/IfConversion.cpp

  • void initializeLoopUnrollPassOnce (PassRegistry & Registry)

    Defined at line 1487 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp

  • void simplifyChunkList (llvm::cl::list<opts::ModuleSubsection> & Chunks)

    Defined at line 1487 of file llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  • bool canSplitPredecessors (PHINode * PN, LoopSafetyInfo * SafetyInfo)

    Defined at line 1487 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void initializeTargetLibraryInfoWrapperPassPassOnce (PassRegistry & Registry)

    Register the basic pass.

    Defined at line 1488 of file llvm/lib/Analysis/TargetLibraryInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateStaticMemberType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNumber, LLVMMetadataRef Type,  Flags, LLVMValueRef ConstantVal, uint32_t AlignInBits)

    Create debugging information entry for a

    C++ static data member.

    Parameters

    Builder The DIBuilder.
    Scope Member scope.
    Name Member name.
    NameLen Length of member name.
    File File where this member is declared.
    LineNumber Line number.
    Type Type of the static member.
    Flags Flags to encode member attribute, e.g. private.
    ConstantVal Const initializer of the member.
    AlignInBits Member alignment.

    Defined at line 1489 of file llvm/lib/IR/DebugInfo.cpp

  • bool isThumbFunction (Function * F, ArchType ModuleArch)

    Defined at line 1489 of file llvm/lib/Transforms/IPO/LowerTypeTests.cpp

  • Constant * getVTableAddrForProfData (GlobalVariable * GV)

    FIXME: Introduce an internal alias like what's done for functions to reduce

    the number of relocation entries.

    Defined at line 1490 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp

  • const char * GuessSymbolName (uint64_t value, SymbolAddressMap * AddrMap)

    GuessSymbolName is passed the address of what might be a symbol and a

    pointer to the SymbolAddressMap. It returns the name of a symbol

    with that address or nullptr if no symbol is found with that address.

    Defined at line 1492 of file llvm/tools/llvm-objdump/MachODump.cpp

  • FunctionSamples remapSamples (const sampleprof::FunctionSamples & Samples, SymbolRemapper & Remapper, sampleprof_error & Error)

    Make a copy of the given function samples with all symbol names remapped

    by the provided symbol remapper.

    Defined at line 1493 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void UpdatePredRedefs (MachineInstr & MI, LivePhysRegs & Redefs)

    Behaves like LiveRegUnits::StepForward() but also adds implicit uses to all

    values defined in MI which are also live/used by MI.

    Defined at line 1495 of file llvm/lib/CodeGen/IfConversion.cpp

  • void writeOptimizationInfo (raw_ostream & Out, const User * U)

    Defined at line 1496 of file llvm/lib/IR/AsmWriter.cpp

  • bool negateICmpIfUsedByBranchOrSelectOnly (ICmpInst * ICmp, Instruction * ExcludedUser, CHRScope * Scope)

    Negate the predicate if an ICmp if it's used only by branches or selects by

    swapping the operands of the branches or the selects. Returns true if success.

    Defined at line 1496 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • optional checkCondition (Predicate Pred, Value * A, Value * B, Instruction * CheckInst, ConstraintInfo & Info)

    Defined at line 1497 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • GEPNoWrapFlags toGEPNoWrapFlags (uint64_t Flags)

    Defined at line 1498 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • unsigned int getDarwinBinOpPrecedence (TokenKind K, MCBinaryExpr::Opcode & Kind, bool ShouldUseLogicalShr)

    Defined at line 1499 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateObjCIVar (LLVMDIBuilderRef Builder, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNo, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits,  Flags, LLVMMetadataRef Ty, LLVMMetadataRef PropertyNode)

    Create debugging information entry for Objective-C instance variable.

    Parameters

    Builder The DIBuilder.
    Name Member name.
    NameLen The length of the C string passed to
    File File where this member is defined.
    LineNo Line number.
    SizeInBits Member size.
    AlignInBits Member alignment.
    OffsetInBits Member offset.
    Flags Flags to encode member attribute, e.g. private
    Ty Parent type.
    PropertyNode Property associated with this ivar.

    Defined at line 1500 of file llvm/lib/IR/DebugInfo.cpp

  • APInt extractConstantWithoutWrapping (ScalarEvolution & SE, const SCEVConstant * ConstantTerm, const SCEVAddExpr * WholeAddExpr)

    Finds an integer D for an expression (C + x + y + ...) such that the top

    level addition in (D + (C - D + x + y + ...)) would not wrap (signed or

    unsigned) and the number of trailing zeros of (C - D + x + y + ...) is

    maximized, where C is the

    x, y, ... are arbitrary SCEVs, and

    the (C + x + y + ...) expression is

    Defined at line 1501 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • Instruction * foldConstantInsEltIntoShuffle (InsertElementInst & InsElt)

    insertelt (shufflevector X, CVec, Mask|insertelt X, C1, CIndex1), C, CIndex

    --> shufflevector X, CVec', Mask'

    Defined at line 1501 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • void CreateGCRelocates (ArrayRef LiveVariables, ArrayRef BasePtrs, Instruction * StatepointToken, int & Builder, GCStrategy * GC)

    Helper function to place all gc relocates necessary for the given

    statepoint.

    Inputs:

    liveVariables - list of variables to be relocated.

    basePtrs - base pointers.

    statepointToken - statepoint instruction to which relocates should be

    bound.

    Builder - Llvm IR builder to be used to construct new calls.

    Defined at line 1502 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void DumpCstringChar (const char c)

    Defined at line 1503 of file llvm/tools/llvm-objdump/MachODump.cpp

  • unsigned int getNumAllocatableRegsForConstraints (const MachineInstr * MI, Register Reg, const TargetRegisterClass * SuperRC, const TargetInstrInfo * TII, const TargetRegisterInfo * TRI, const RegisterClassInfo & RCI)

    Get the number of allocatable registers that match the constraints of

    on

    and that are also in

    Defined at line 1503 of file llvm/lib/CodeGen/RegAllocGreedy.cpp

  • void createBSWAPShuffleMask (EVT VT, SmallVectorImpl<int> & ShuffleMask)

    Defined at line 1504 of file llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp

  • bool isSafeToHoistInvoke (BasicBlock * BB1, BasicBlock * BB2, Instruction * I1, Instruction * I2)

    If we would need to insert a select that uses the value of this invoke

    (comments in hoistSuccIdenticalTerminatorToSwitchOrIf explain why we would

    need to do this), we can't hoist the invoke, as there is nowhere to put the

    select in this case.

    Defined at line 1504 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool matchIncrement (const Instruction * IVInc, Instruction *& LHS, Constant *& Step)

    Match a simple increment by constant operation. Note that if a sub is

    matched, the step is negated (as if the step had been canonicalized to

    an add, even though we leave the instruction alone.)

    Defined at line 1504 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • int readOpcodeRegister (struct InternalInstruction * insn, uint8_t size)

    Read an operand from the opcode field of an instruction and interprets it

    appropriately given the operand width. Handles AddRegFrm instructions.

    Parameters

    insn - the instruction whose opcode field is to be read.
    size - The width (in bytes) of the register being specified. 1 means AL and friends, 2 means AX, 4 means EAX, and 8 means RAX.

    Returns

    - 0 on success; nonzero otherwise.

    Defined at line 1504 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • basic_string getShuffleComment (const MachineInstr * MI, unsigned int SrcOp1Idx, unsigned int SrcOp2Idx, ArrayRef<int> Mask)

    Defined at line 1505 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • void splitPredecessorsOfLoopExit (PHINode * PN, DominatorTree * DT, LoopInfo * LI, const Loop * CurLoop, LoopSafetyInfo * SafetyInfo, MemorySSAUpdater * MSSAU)

    Defined at line 1505 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool foldMulHigh (Instruction & I)

    Match high part of long multiplication.

    Considering a multiply made up of high and low parts, we can split the

    multiply into:

    x * y == (xh*T + xl) * (yh*T + yl)

    where xh == x>>32 and xl == x

    &

    0xffffffff. T = 2^32.

    This expands to

    xh*yh*T*T + xh*yl*T + xl*yh*T + xl*yl

    which can be drawn as

    [ xh*yh ]

    [ xh*yl ]

    [ xl*yh ]

    [ xl*yl ]

    We are looking for the "high" half, which is xh*yh + xh*yl>>32 + xl*yh>>32 +

    some carrys. The carry makes this difficult and there are multiple ways of

    representing it. The ones we attempt to support here are:

    Carry: xh*yh + carry + lowsum

    carry = lowsum

    <

    xh*yl ? 0x1000000 : 0

    lowsum = xh*yl + xl*yh + (xl*yl>>32)

    Ladder: xh*yh + c2>>32 + c3>>32

    c2 = xh*yl + (xl*yl>>32); c3 = c2

    &

    0xffffffff + xl*yh

    or c2 = (xl*yh

    &

    0xffffffff) + xh*yl + (xl*yl>>32); c3 = xl*yh

    Carry4: xh*yh + carry + crosssum>>32 + (xl*yl + crosssum

    &

    0xffffffff) >> 32

    crosssum = xh*yl + xl*yh

    carry = crosssum

    <

    xh*yl ? 0x1000000 : 0

    Ladder4: xh*yh + (xl*yh)>>32 + (xh*yl)>>32 + low>>32;

    low = (xl*yl)>>32 + (xl*yh)

    &

    0xffffffff + (xh*yl)

    &

    0xffffffff

    They all start by matching xh*yh + 2 or 3 other operands. The bottom of the

    tree is xh*yh, xh*yl, xl*yh and xl*yl.

    Defined at line 1507 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • bool isConstExprSupported (const BitcodeConstant * BC)

    Defined at line 1509 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void DumpCstringSection (MachOObjectFile * O, const char * sect, uint32_t sect_size, uint64_t sect_addr, bool print_addresses)

    Defined at line 1510 of file llvm/tools/llvm-objdump/MachODump.cpp

  • unsigned int LLVMGetDebugLocLine (LLVMValueRef Val)

    Return the line number of the debug location for this value, which must be

    an llvm::Instruction, llvm::GlobalVariable, or llvm::Function.

    Defined at line 1510 of file llvm/lib/IR/Core.cpp

  • int llvm_ar_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 1511 of file llvm/tools/llvm-ar/llvm-ar.cpp

  • void addNoAliasAttrs (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Deduce noalias attributes for the SCC.

    Defined at line 1511 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool SinkingPreventsImplicitNullCheck (MachineInstr & MI, const TargetInstrInfo * TII, const TargetRegisterInfo * TRI)

    Return true if MI is likely to be usable as a memory operation by the

    implicit null check optimization.

    This is a "best effort" heuristic, and should not be relied upon for

    correctness. This returning true does not guarantee that the implicit null

    check optimization is legal over MI, and this returning false does not

    guarantee MI cannot possibly be used to do a null check.

    Defined at line 1511 of file llvm/lib/CodeGen/MachineSink.cpp

  • Value * simplifyUnsignedRangeCheck (ICmpInst * ZeroICmp, ICmpInst * UnsignedICmp, bool IsAnd, const SimplifyQuery & Q)

    Commuted variants are assumed to be handled by calling this function again

    with the parameters swapped.

    Defined at line 1512 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool CanShareConstantPoolEntry (const Constant * A, const Constant * B, const DataLayout & DL)

    Test whether the given two constants can be allocated the same constant pool

    entry referenced by

    Defined at line 1513 of file llvm/lib/CodeGen/MachineFunction.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateObjCProperty (LLVMDIBuilderRef Builder, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNo, const char * GetterName, size_t GetterNameLen, const char * SetterName, size_t SetterNameLen, unsigned int PropertyAttributes, LLVMMetadataRef Ty)

    Create debugging information entry for Objective-C property.

    Parameters

    Builder The DIBuilder.
    Name Property name.
    NameLen The length of the C string passed to
    File File where this property is defined.
    LineNo Line number.
    GetterName Name of the Objective C property getter selector.
    GetterNameLen The length of the C string passed to
    SetterName Name of the Objective C property setter selector.
    SetterNameLen The length of the C string passed to
    PropertyAttributes Objective C property attributes.
    Ty Type.

    Defined at line 1514 of file llvm/lib/IR/DebugInfo.cpp

  • bool isConstantScalar (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowFP, bool AllowOpaqueConstants)

    Defined at line 1514 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • LaneBitmask getInstReadLaneMask (const MachineRegisterInfo & MRI, const TargetRegisterInfo & TRI, const MachineInstr & FirstMI, Register Reg)

    Defined at line 1517 of file llvm/lib/CodeGen/RegAllocGreedy.cpp

  • SymbolInfoTy createDummySymbolInfo (const ObjectFile & Obj, const uint64_t Addr, StringRef & Name, uint8_t Type)

    Defined at line 1518 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool isFoldedOrDeadInstruction (const Instruction * I, const FunctionLoweringInfo & FuncInfo)

    isFoldedOrDeadInstruction - Return true if the specified instruction is

    side-effect free and is either dead or folded into a generated instruction.

    Return false if it needs to be emitted.

    Defined at line 1521 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • basic_string getGNUPtType (unsigned int Arch, unsigned int Type)

    Defined at line 1521 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • APInt extractConstantWithoutWrapping (ScalarEvolution & SE, const APInt & ConstantStart, const SCEV * Step)

    Finds an integer D for an affine AddRec expression {C,+,x} such that the top

    level addition in (D + {C-D,+,x}) would not wrap (signed or unsigned) and the

    number of trailing zeros of (C - D + x * n) is maximized, where C is the

    x is an arbitrary

    and n is the loop trip count.

    Defined at line 1522 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • std::optional<std::pair<Instruction *, Constant *>> getIVIncrement (const PHINode * PN, const LoopInfo * LI)

    If given

    is an inductive variable with value IVInc coming from the

    backedge, and on each iteration it gets increased by Step, return pair

    <IVInc

    , Step>. Otherwise, return std::nullopt.

    Defined at line 1522 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • void initializeTargetTransformInfoWrapperPassPassOnce (PassRegistry & Registry)

    Register the basic pass.

    Defined at line 1523 of file llvm/lib/Analysis/TargetTransformInfo.cpp

  • AttrBuilder IdentifyValidUBGeneratingAttributes (CallBase & CB)

    Attributes that are always okay to propagate as if they are violated its

    immediate UB.

    Defined at line 1523 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool IsPartOfWord (char c)

    Defined at line 1524 of file llvm/lib/FileCheck/FileCheck.cpp

  • BasicBlock * findOrCreatePHIBlock (OutlinableGroup & Group, Value * RetVal)

    Find or create a BasicBlock in the outlined function containing PhiBlocks

    for

    Parameters

    Group - The OutlinableGroup containing the information about the overall outlined function.
    RetVal - The return value or exit option that we are currently evaluating.

    Defined at line 1525 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void printConstant (const APInt & Val, raw_ostream & CS, bool PrintZero)

    Defined at line 1526 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • pair findCommonType (AllocaSlices::const_iterator B, AllocaSlices::const_iterator E, uint64_t EndOffset)

    Walk the range of a partitioning looking for a common type to cover this

    sequence of slices.

    Defined at line 1526 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • unsigned int skippedInstrFlags (Instruction * I)

    Defined at line 1527 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void DumpLiteral4 (uint32_t l, float f)

    Defined at line 1527 of file llvm/tools/llvm-objdump/MachODump.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateObjectPointerType (LLVMDIBuilderRef Builder, LLVMMetadataRef Type, LLVMBool Implicit)

    Create a uniqued DIType* clone with FlagObjectPointer. If

    is true, then also set FlagArtificial.

    Parameters

    Builder The DIBuilder.
    Type The underlying type to which this pointer points.
    Implicit Indicates whether this pointer was implicitly generated (i.e., not spelled out in source).

    Defined at line 1528 of file llvm/lib/IR/DebugInfo.cpp

  • void collectBBAddrMapLabels (const BBAddrMapInfo & FullAddrMap, uint64_t SectionAddr, uint64_t Start, uint64_t End, int & Labels)

    Defined at line 1528 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool processIfEntryValueDbgDeclare (FunctionLoweringInfo & FuncInfo, const Value * Arg, DIExpression * Expr, DILocalVariable * Var, DebugLoc DbgLoc)

    Defined at line 1529 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool usesOperand (User * Usr, Value * Op)

    Return true if Usr has Op as an operand, otherwise false.

    Defined at line 1532 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • unsigned int LLVMGetDebugLocColumn (LLVMValueRef Val)

    Return the column number of the debug location for this value, which must be

    an llvm::Instruction.

    Defined at line 1532 of file llvm/lib/IR/Core.cpp

  • unique_ptr getInputFileBuf (const StringRef & InputFile)

    Defined at line 1532 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void rewritePHIs (Function & F)

    Defined at line 1533 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void insertFoldCacheEntry (const ScalarEvolution::FoldID & ID, const SCEV * S, int & FoldCache, int & FoldCacheUser)

    Defined at line 1533 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateTypedef (LLVMDIBuilderRef Builder, LLVMMetadataRef Type, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNo, LLVMMetadataRef Scope, uint32_t AlignInBits)

    Create debugging information entry for a typedef.

    Parameters

    Builder The DIBuilder.
    Type Original type.
    Name Typedef name.
    File File where this type is defined.
    LineNo Line number.
    Scope The surrounding context for the typedef.

    Defined at line 1535 of file llvm/lib/IR/DebugInfo.cpp

  • const char * getIntrinsicFromLibfunc (Function & Fn, Type * VT, const TargetLibraryInfo & TLI)

    Returns the name of the LLVM intrinsic corresponding to the given function.

    Defined at line 1536 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • void writeAPFloatInternal (raw_ostream & Out, const APFloat & APF)

    Defined at line 1536 of file llvm/lib/IR/AsmWriter.cpp

  • AttrBuilder IdentifyValidPoisonGeneratingAttributes (CallBase & CB)

    Attributes that need additional checks as propagating them may change

    behavior or cause new UB.

    Defined at line 1538 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void emitPredicateProlog (const RecordKeeper & Records, raw_ostream & OS)

    Defined at line 1538 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • bool isIVIncrement (const Value * V, const LoopInfo * LI)

    Defined at line 1538 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool checkAndReplaceCondition (ICmpInst * Cmp, ConstraintInfo & Info, unsigned int NumIn, unsigned int NumOut, Instruction * ContextInst, Module * ReproducerModule, ArrayRef<ReproducerEntry> ReproducerCondStack, DominatorTree & DT, SmallVectorImpl<Instruction *> & ToRemove)

    Defined at line 1538 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • void emitRemark (const Function & F, OptimizationRemarkEmitter & ORE, bool Skip)

    Defined at line 1539 of file llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp

  • bool isOperationFoldable (User * Usr)

    Return true if the instruction type of Val is supported by

    constantFoldUser(). Currently CastInst, BinaryOperator and FreezeInst only.

    Call this before calling constantFoldUser() to find out if it's even worth

    attempting to call it.

    Defined at line 1540 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • void printConstant (const APFloat & Flt, raw_ostream & CS, bool PrintZero)

    Defined at line 1542 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • bool isSafeToHoistInstr (Instruction * I, unsigned int Flags)

    Returns true if it is safe to reorder an instruction across preceding

    instructions in a basic block.

    Defined at line 1542 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void DumpLiteral4Section (MachOObjectFile * O, const char * sect, uint32_t sect_size, uint64_t sect_addr, bool print_addresses)

    Defined at line 1543 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void populateProfileSymbolList (MemoryBuffer * Buffer, sampleprof::ProfileSymbolList & PSL)

    Defined at line 1544 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateInheritance (LLVMDIBuilderRef Builder, LLVMMetadataRef Ty, LLVMMetadataRef BaseTy, uint64_t BaseOffset, uint32_t VBPtrOffset,  Flags)

    Create debugging information entry to establish inheritance relationship

    between two types.

    Parameters

    Builder The DIBuilder.
    Ty Original type.
    BaseTy Base type. Ty is inherits from base.
    BaseOffset Base offset.
    VBPtrOffset Virtual base pointer offset.
    Flags Flags to describe inheritance attribute, e.g. private

    Defined at line 1545 of file llvm/lib/IR/DebugInfo.cpp

  • AttrKind tokenToAttribute (Kind Kind)

    Defined at line 1545 of file llvm/lib/AsmParser/LLParser.cpp

  • bool getCastsForInductionPHI (PredicatedScalarEvolution & PSE, const SCEVUnknown * PhiScev, const SCEVAddRecExpr * AR, SmallVectorImpl<Instruction *> & CastInsts)

    This function is called when we suspect that the update-chain of a phi node

    (whose symbolic SCEV expression sin

    contains redundant casts,

    that can be ignored. (This can happen when the PSCEV rewriter adds a runtime

    predicate P under which the SCEV expression for the phi can be the

    AddRecurrence

    See createAddRecFromPHIWithCast). We want to find the

    cast instructions that are involved in the update-chain of this induction.

    A caller that adds the required runtime predicate can be free to drop these

    cast instructions, and compute the phi using

    (instead of some scev

    expression with casts).

    For example, without a predicate the scev expression can take the following

    form:

    (Ext ix (Trunc iy ( Start + i*Step ) to ix) to iy)

    It corresponds to the following IR sequence:

    %for.body:

    %x = phi i64 [ 0, %ph ], [ %add, %for.body ]

    %casted_phi = "ExtTrunc i64 %x"

    %add = add i64 %casted_phi, %step

    where %x is given in

    PSE.getSCEV(%x) is equal to PSE.getSCEV(%casted_phi) under a predicate,

    and the IR sequence that "ExtTrunc i64 %x" represents can take one of

    several forms, for example, such as:

    ExtTrunc1: %casted_phi = and %x, 2^n-1

    or:

    ExtTrunc2: %t = shl %x, m

    %casted_phi = ashr %t, m

    If we are able to find such sequence, we return the instructions

    we found, namely %casted_phi and the instructions on its use-def chain up

    to the phi (not including the phi).

    Defined at line 1545 of file llvm/lib/Analysis/IVDescriptors.cpp

  • void insertTrivialPHIs (CHRScope * Scope, BasicBlock * EntryBlock, BasicBlock * ExitBlock, DenseSet<PHINode *> & TrivialPHIs)

    A helper for transformScopes. Insert a trivial phi at the scope exit block

    for a value that's defined in the scope but used outside it (meaning it's

    alive at the exit block).

    Defined at line 1545 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • Value * optimizeMemCmpConstantSize (CallInst * CI, Value * LHS, Value * RHS, uint64_t Len, IRBuilderBase & B, const DataLayout & DL)

    Optimize a memcmp call CI with constant size Len.

    Defined at line 1546 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • BasicBlock * splitBlockIfNotFirst (Instruction * I, const Twine & Name)

    Splits the block at a particular instruction unless it is the first

    instruction in the block with a single predecessor.

    Defined at line 1547 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • bool readsLaneSubset (const MachineRegisterInfo & MRI, const MachineInstr * MI, const LiveInterval & VirtReg, const TargetRegisterInfo * TRI, SlotIndex Use, const TargetInstrInfo * TII)

    Return true if

    at

    Use reads a subset of the lanes live in

    Defined at line 1548 of file llvm/lib/CodeGen/RegAllocGreedy.cpp

  • ValueLatticeElement constantFoldUser (User * Usr, Value * Op, const APInt & OpConstVal, const DataLayout & DL)

    Check if Usr can be simplified to an integer constant when the value of one

    of its operands Op is an integer constant OpConstVal. If so, return it as an

    lattice value range with a single element or otherwise return an overdefined

    lattice value.

    Defined at line 1548 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • int readImmediate (struct InternalInstruction * insn, uint8_t size)

    Consume an immediate operand from an instruction, given the desired operand

    size.

    Parameters

    insn - The instruction whose operand is to be read.
    size - The width (in bytes) of the operand.

    Returns

    - 0 if the immediate was successfully consumed; nonzero

    otherwise.

    Defined at line 1548 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool isTruePredicate (const Record * Rec)

    Defined at line 1549 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • void analyzeCostOfVecReduction (const IntrinsicInst & II, TargetCostKind CostKind, const TargetTransformInfo & TTI, InstructionCost & CostBeforeReduction, InstructionCost & CostAfterReduction)

    Defined at line 1549 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • void AddReturnAttributes (CallBase & CB, ValueToValueMapTy & VMap, ClonedCodeInfo & InlinedFunctionInfo)

    Defined at line 1549 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • const DILocalScope * getRetainedNodeScope (const MDNode * N)

    Defined at line 1551 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • basic_string getSecFlagsStr (const SecHdrTableEntry & Entry)

    Defined at line 1552 of file llvm/lib/ProfileData/SampleProfReader.cpp

  • void printConstant (const Constant * COp, unsigned int BitWidth, raw_ostream & CS, bool PrintZero)

    Defined at line 1553 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • bool isReturnNonNull (Function * F, const SCCNodeSet & SCCNodes, bool & Speculative)

    Tests whether this function is known to not return null.

    Requires that the function returns a pointer.

    Returns true if it believes the function will not return a null, and sets

    based on whether the returned conclusion is a speculative

    conclusion due to SCC calls.

    Defined at line 1553 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void expandSchedPredicates (const Record * Rec, PredicateExpander & PE, bool WrapPredicate, raw_ostream & OS)

    Defined at line 1554 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateQualifiedType (LLVMDIBuilderRef Builder, unsigned int Tag, LLVMMetadataRef Type)

    Create debugging information entry for a qualified

    type, e.g. 'const int'.

    Parameters

    Builder The DIBuilder.
    Tag Tag identifying type, e.g. LLVMDWARFTypeQualifier_volatile_type
    Type Base Type.

    Defined at line 1581 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateReferenceType (LLVMDIBuilderRef Builder, unsigned int Tag, LLVMMetadataRef Type)

    Create debugging information entry for a c++

    style reference or rvalue reference type.

    Parameters

    Builder The DIBuilder.
    Tag Tag identifying type,
    Type Base Type.

    Defined at line 1588 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateNullPtrType (LLVMDIBuilderRef Builder)

    Create C++11 nullptr type.

    Parameters

    Builder The DIBuilder.

    Defined at line 1595 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateForwardDecl (LLVMDIBuilderRef Builder, unsigned int Tag, const char * Name, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned int Line, unsigned int RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits, const char * UniqueIdentifier, size_t UniqueIdentifierLen)

    Create a permanent forward-declared type.

    Parameters

    Builder The DIBuilder.
    Tag A unique tag for this type.
    Name Type name.
    NameLen Length of type name.
    Scope Type scope.
    File File where this type is defined.
    Line Line number where this type is defined.
    RuntimeLang Indicates runtime version for languages like Objective-C.
    SizeInBits Member size.
    AlignInBits Member alignment.
    UniqueIdentifier A unique identifier for the type.
    UniqueIdentifierLen Length of the unique identifier.

    Defined at line 1555 of file llvm/lib/IR/DebugInfo.cpp

  • bool processDbgDeclare (FunctionLoweringInfo & FuncInfo, const Value * Address, DIExpression * Expr, DILocalVariable * Var, DebugLoc DbgLoc)

    Defined at line 1555 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool attemptDebugCopyProp (MachineInstr & SinkInst, MachineInstr & DbgMI, Register Reg)

    If the sunk instruction is a copy, try to forward the copy instead of

    leaving an 'undef' DBG_VALUE in the original location. Don't do this if

    there's any subregister weirdness involved. Returns true if copy

    propagation occurred.

    Defined at line 1556 of file llvm/lib/CodeGen/MachineSink.cpp

  • void handleExtBinaryWriter (sampleprof::SampleProfileWriter & Writer, ProfileFormat OutputFormat, MemoryBuffer * Buffer, sampleprof::ProfileSymbolList & WriterList, bool CompressAllSections, bool UseMD5, bool GenPartialProfile)

    Defined at line 1557 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void splitAround (Instruction * I, const Twine & Name)

    Split above and below a particular instruction so that it

    will be all alone by itself in a block.

    Defined at line 1560 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void collectLocalBranchTargets (ArrayRef Bytes, MCInstrAnalysis * MIA, MCDisassembler * DisAsm, MCInstPrinter * IP, const MCSubtargetInfo * STI, uint64_t SectionAddr, uint64_t Start, uint64_t End, int & Labels)

    Defined at line 1563 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void DumpLiteral8 (MachOObjectFile * O, uint32_t l0, uint32_t l1, double d)

    Defined at line 1565 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isVirtualRegisterOperand (MachineOperand & MO)

    Returns true if

    is a virtual register operand.

    Defined at line 1566 of file llvm/lib/CodeGen/PeepholeOptimizer.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType (LLVMDIBuilderRef Builder, unsigned int Tag, const char * Name, size_t NameLen, LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned int Line, unsigned int RuntimeLang, uint64_t SizeInBits, uint32_t AlignInBits,  Flags, const char * UniqueIdentifier, size_t UniqueIdentifierLen)

    Create a temporary forward-declared type.

    Parameters

    Builder The DIBuilder.
    Tag A unique tag for this type.
    Name Type name.
    NameLen Length of type name.
    Scope Type scope.
    File File where this type is defined.
    Line Line number where this type is defined.
    RuntimeLang Indicates runtime version for languages like Objective-C.
    SizeInBits Member size.
    AlignInBits Member alignment.
    Flags Flags.
    UniqueIdentifier A unique identifier for the type.
    UniqueIdentifierLen Length of the unique identifier.

    Defined at line 1567 of file llvm/lib/IR/DebugInfo.cpp

  • bool willLeaveFunctionImmediatelyAfter (BasicBlock * BB, unsigned int depth)

    After we split the coroutine, will the given basic block be along

    an obvious exit path for the resumption function?

    Defined at line 1567 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void checkCmpInst (sandboxir::Context & Ctx, sandboxir::CmpInst * Cmp)

    Defined at line 1570 of file llvm/unittests/SandboxIR/TrackerTest.cpp

  • template <typename IndexTy>
    Type * getIndexedTypeInternal (Type * Ty, ArrayRef<IndexTy> IdxList)

    Defined at line 1571 of file llvm/lib/IR/Instructions.cpp

  • Value * getPassedArgumentInAlreadyOutlinedFunction (const Argument * A, const OutlinableRegion & Region)

    For the function call now representing the

    find the passed value

    to that call that represents Argument

    at the call location if the

    call has already been replaced with a call to the overall, aggregate

    function.

    Parameters

    A - The Argument to get the passed value for.
    Region - The extracted Region corresponding to the outlined function.

    Defined at line 1572 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • map buildLineToUnitMap (iterator_range Units)

    We want to supply the Unit associated with a .debug_line[.dwo] table when

    we dump it, if possible, but still dump the table even if there isn't a Unit.

    Therefore, collect up handles on all the Units that point into the

    line-table section.

    Defined at line 1573 of file llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp

  • void narrowToSingleScalarRecipes (VPlan & Plan)

    Defined at line 1574 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • unsigned int getGNUBinOpPrecedence (const MCAsmInfo & MAI, TokenKind K, MCBinaryExpr::Opcode & Kind, bool ShouldUseLogicalShr)

    Defined at line 1575 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • APInt estimateBitMaskedAndLowerBound (const ConstantRange & LHS, const ConstantRange & RHS)

    Estimate the 'bit-masked AND' operation's lower bound.

    E.g., given two ranges as follows (single quotes are separators and

    have no meaning here),

    LHS = [10'00101'1, ; LLo

    10'10000'0] ; LHi

    RHS = [10'11111'0, ; RLo

    10'11111'1] ; RHi

    we know that the higher 2 bits of the result is always 10; and we also

    notice that RHS[1:6] are always 1, so the result[1:6] cannot be less than

    LHS[1:6] (i.e., 00101). Thus, the lower bound is 10'00101'0.

    The algorithm is as follows,

    1. we first calculate a mask to find the higher common bits by

    Mask = ~((LLo ^ LHi) | (RLo ^ RHi) | (LLo ^ RLo));

    Mask = clear all non-leading-ones bits in Mask;

    in the example, the Mask is set to 11'00000'0;

    2. calculate a new mask by setting all common leading bits to 1 in RHS, and

    keeping the longest leading ones (i.e., 11'11111'0 in the example);

    3. return (LLo

    &

    new mask) as the lower bound;

    4. repeat the step 2 and 3 with LHS and RHS swapped, and update the lower

    bound with the larger one.

    Defined at line 1577 of file llvm/lib/IR/ConstantRange.cpp

  • bool isArgumentOrArgumentLike (const Value * V)

    Return true for an Argument or extractvalue(Argument). These are all known

    to not alias with FunctionLocal objects and can come up from coerced function

    arguments.

    Defined at line 1579 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • bool matchIsFPClassLikeFCmp (Value * Op, Value *& ClassVal, uint64_t & ClassMask)

    Match an fcmp against a special value that performs a test possible by

    llvm.is.fpclass.

    Defined at line 1580 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool shouldHoistCommonInstructions (Instruction * I1, Instruction * I2, const TargetTransformInfo & TTI)

    Helper function for hoistCommonCodeFromSuccessors. Return true if identical

    instructions

    and

    can and should be hoisted.

    Defined at line 1580 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • content_iterator makeImportedSymbolIterator (const COFFObjectFile * Object, uintptr_t Ptr, int Index)

    Defined at line 1581 of file llvm/lib/Object/COFFObjectFile.cpp

  • Kind getEdgeKind (Function & OriginalFunction, Function & NewFunction)

    Gets the Edge::Kind from one function to another by looking at the function's

    instructions. Asserts if there is no edge.

    Useful for determining what type of edge should exist between functions when

    the edge hasn't been created yet.

    Defined at line 1582 of file llvm/lib/Analysis/LazyCallGraph.cpp

  • template <Intrinsic::ID IntrID>
    Instruction * foldBitOrderCrossLogicOp (Value * V, InstCombiner::BuilderTy & Builder)

    Fold the following cases and accepts bswap and bitreverse intrinsics:

    bswap(logic_op(bswap(x), y)) --> logic_op(x, bswap(y))

    bswap(logic_op(bswap(x), bswap(y))) --> logic_op(x, y) (ignores multiuse)

    Defined at line 1584 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • bool localAllocaNeedsStackSave (CoroAllocaAllocInst * AI)

    Defined at line 1587 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void DumpLiteral8Section (MachOObjectFile * O, const char * sect, uint32_t sect_size, uint64_t sect_addr, bool print_addresses)

    Defined at line 1587 of file llvm/tools/llvm-objdump/MachODump.cpp

  • pair FindCheckType (const FileCheckRequest & Req, StringRef Buffer, StringRef Prefix, bool & Misspelled)

    Defined at line 1587 of file llvm/lib/FileCheck/FileCheck.cpp

  • Value * getPassedArgumentAndAdjustArgumentLocation (const Argument * A, const OutlinableRegion & Region)

    For the function call now representing the

    find the passed value

    to that call that represents Argument

    at the call location if the

    call has only been replaced by the call to the aggregate function.

    Parameters

    A - The Argument to get the passed value for.
    Region - The extracted Region corresponding to the outlined function.

    Defined at line 1588 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void addRuntimeUnrollDisableMetaData (Loop * L)

    Defined at line 1588 of file llvm/lib/Transforms/Vectorize/VPlan.cpp

  • void addSequences (CodeGenSchedModels & SchedModels, ArrayRef<SmallVector<unsigned int, 4>> Seqs, IdxVec & Result, bool IsRead)

    Defined at line 1590 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • content_iterator importedSymbolBegin (uint32_t RVA, const COFFObjectFile * Object)

    Defined at line 1592 of file llvm/lib/Object/COFFObjectFile.cpp

  • unsigned int getChompedLineBreaks (char ChompingIndicator, unsigned int LineBreaks, StringRef Str)

    Get the number of line breaks after chomping.

    Return the number of trailing line breaks to emit, depending on

    Defined at line 1592 of file llvm/lib/Support/YAMLParser.cpp

  • int readVVVV (struct InternalInstruction * insn)

    Consume vvvv from an instruction if it has a VEX prefix.

    Defined at line 1592 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool isSafePHIToSpeculate (PHINode & PN)

    PHI instructions that use an alloca and are subsequently loaded can be

    rewritten to load both input pointers in the pred blocks and then PHI the

    results, allowing the load of the alloca to be promoted.

    From this:

    %P2 = phi [i32* %Alloca, i32* %Other]

    %V = load i32* %P2

    to:

    %V1 = load i32* %Alloca -> will be mem2reg'd

    ...

    %V2 = load i32* %Other

    ...

    %V = phi [i32 %V1, i32 %V2]

    We can do this to a select if its only uses are loads and if the operands

    to the select can be loaded unconditionally.

    FIXME: This should be hoisted into a generic utility, likely in

    Transforms/Util/Local.h

    Defined at line 1593 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • template <typename Ty>
    basic_string ParseAndEmit (StringRef YAML)

    Defined at line 1596 of file llvm/unittests/Support/YAMLIOTest.cpp

  • bool PhiHasDebugValue (DILocalVariable * DIVar, DIExpression * DIExpr, PHINode * APN)

    See if there is a dbg.value intrinsic for DIVar for the PHI node.

    Defined at line 1596 of file llvm/lib/Transforms/Utils/Local.cpp

  • void mergeSampleProfile (const WeightedFileVector & Inputs, SymbolRemapper * Remapper, StringRef ProfileSymbolListFile, size_t OutputSizeLimit)

    Defined at line 1597 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • bool isAngleBracketString (SMLoc & StrLoc, SMLoc & EndLoc)

    This function checks if the next token is

    <string

    > type or arithmetic.

    string that begin with character '

    <

    ' must end with character '>'.

    otherwise it is arithmetics.

    If the function returns a 'true' value,

    the End argument will be filled with the last location pointed to the '>'

    character.

    Defined at line 1598 of file llvm/lib/MC/MCParser/MasmParser.cpp

  • void dumpRecVec (const ConstRecVec & RV)

    Defined at line 1599 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • SmallVector<InstrProfValueData, 2> GetSortedValueDataFromCallTargets (const int & M)

    Returns the sorted CallTargetMap

    by count in descending order.

    Defined at line 1600 of file llvm/lib/Transforms/IPO/SampleProfile.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateMemberPointerType (LLVMDIBuilderRef Builder, LLVMMetadataRef PointeeType, LLVMMetadataRef ClassType, uint64_t SizeInBits, uint32_t AlignInBits,  Flags)

    Create debugging information entry for a pointer to member.

    Parameters

    Builder The DIBuilder.
    PointeeType Type pointed to by this pointer.
    ClassType Type for which this pointer points to members of.
    SizeInBits Size.
    AlignInBits Alignment.
    Flags Flags.

    Defined at line 1600 of file llvm/lib/IR/DebugInfo.cpp

  • content_iterator importedSymbolEnd (uint32_t RVA, const COFFObjectFile * Object)

    Defined at line 1600 of file llvm/lib/Object/COFFObjectFile.cpp

  • void ARM64EmitUnwindInfo (MCStreamer & streamer, WinEH::FrameInfo * info, bool TryPacked)

    Populate the .xdata section. The format of .xdata on ARM64 is documented at

    https://docs.microsoft.com/en-us/cpp/build/arm64-exception-handling

    Defined at line 1600 of file llvm/lib/MC/MCWin64EH.cpp

  • IntegerType * getIntTy (IRBuilderBase & B, const TargetLibraryInfo * TLI)

    - Emit LibCalls ------------------------------------------------------------//

    Defined at line 1603 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • void dumpTransition (const CodeGenSchedModels & SchedModels, const CodeGenSchedClass & FromSC, const CodeGenSchedTransition & SCTrans, const ConstRecVec & Preds)

    Defined at line 1605 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • Instruction * narrowInsElt (InsertElementInst & InsElt, InstCombiner::BuilderTy & Builder)

    If both the base vector and the inserted element are extended from the same

    type, do the insert element in the narrow source type followed by extend.

    TODO: This can be extended to include other cast opcodes, but particularly

    if we create a wider insertelement, make sure codegen is not harmed.

    Defined at line 1605 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • void lowerLocalAllocas (ArrayRef LocalAllocas, SmallVectorImpl<Instruction *> & DeadInsts)

    Turn each of the given local allocas into a normal (dynamic) alloca

    instruction.

    Defined at line 1605 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • IntegerType * getSizeTTy (IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Defined at line 1607 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool checkAndReplaceMinMax (MinMaxIntrinsic * MinMax, ConstraintInfo & Info, SmallVectorImpl<Instruction *> & ToRemove)

    Defined at line 1607 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • void processDbgDeclares (FunctionLoweringInfo & FuncInfo)

    Collect llvm.dbg.declare information. This is done after argument lowering

    in case the declarations refer to arguments.

    Defined at line 1608 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool hasHardUserWithinLoop (const Loop * L, const Instruction * I)

    ===----------------------------------------------------------------------===//

    rewriteLoopExitValues - Optimize IV users outside the loop.

    As a side effect, reduces the amount of IV processing within the loop.

    ===----------------------------------------------------------------------===//

    Defined at line 1608 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • void performSink (MachineInstr & MI, MachineBasicBlock & SuccToSinkTo, int InsertPos, ArrayRef<MIRegs> DbgValuesToSink)

    Sink an instruction and its associated debug instructions.

    Defined at line 1608 of file llvm/lib/CodeGen/MachineSink.cpp

  • bool getFunctionNameAndStartLineForAddress (DWARFCompileUnit * CU, uint64_t Address, DINameKind Kind, FileLineInfoKind FileNameKind, std::string & FunctionName, std::string & StartFile, uint32_t & StartLine, std::optional<uint64_t> & StartAddress)

    TODO: change input parameter from "uint64_t Address"

    into "SectionedAddress Address"

    Defined at line 1611 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • void DumpLiteral16 (uint32_t l0, uint32_t l1, uint32_t l2, uint32_t l3)

    Defined at line 1612 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Value * emitLibCall (LibFunc TheLibFunc, Type * ReturnType, ArrayRef ParamTypes, ArrayRef Operands, IRBuilderBase & B, const TargetLibraryInfo * TLI, bool IsVaArgs)

    Defined at line 1612 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateBitFieldMemberType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNumber, uint64_t SizeInBits, uint64_t OffsetInBits, uint64_t StorageOffsetInBits,  Flags, LLVMMetadataRef Type)

    Create debugging information entry for a bit field member.

    Parameters

    Builder The DIBuilder.
    Scope Member scope.
    Name Member name.
    NameLen Length of member name.
    File File where this member is defined.
    LineNumber Line number.
    SizeInBits Member size.
    OffsetInBits Member offset.
    StorageOffsetInBits Member storage offset.
    Flags Flags to encode member attribute.
    Type Parent type.

    Defined at line 1613 of file llvm/lib/IR/DebugInfo.cpp

  • void emitPredicates (const CodeGenSchedTransition & T, const CodeGenSchedClass & SC, PredicateExpander & PE, raw_ostream & OS)

    Defined at line 1614 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • void findCanonNumsForPHI (PHINode * PN, OutlinableRegion & Region, const DenseMap<Value *, Value *> & OutputMappings, SmallVector<std::pair<unsigned int, BasicBlock *>> & CanonNums, bool ReplacedWithOutlinedCall)

    Find the canonical numbering for the incoming Values into the PHINode

    Parameters

    PN [in] - The PHINode that we are finding the canonical numbers for.
    Region [in] - The OutlinableRegion containing
    OutputMappings [in] - The mapping of output values from outlined region to their original values.
    CanonNums [out] - The canonical numbering for the incoming values to paired with their incoming block.
    ReplacedWithOutlinedCall - A flag to use the extracted function call of rather than the overall function's call.

    Defined at line 1615 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void hoistLockstepIdenticalDbgVariableRecords (Instruction * TI, Instruction * I1, SmallVectorImpl<Instruction *> & OtherInsts)

    Hoists DbgVariableRecords from

    and

    that are identical

    in lock-step to

    This matches how dbg.* intrinsics are hoisting in

    hoistCommonCodeFromSuccessors. e.g. The input:

    I1 DVRs: { x, z },

    OtherInsts: { I2 DVRs: { x, y, z } }

    would result in hoisting only DbgVariableRecord x.

    Defined at line 1615 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • basic_string angleBracketString (StringRef BracketContents)

    creating a string without the escape characters '!'.

    Defined at line 1616 of file llvm/lib/MC/MCParser/MasmParser.cpp

  • TreePatternNode & getOperandNum (unsigned int OpNo, TreePatternNode & N, const SDNodeInfo & NodeInfo, unsigned int & ResNo)

    getOperandNum - Return the node corresponding to operand #OpNo in tree

    N, and the result number in ResNo.

    Defined at line 1617 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void inferFromTransitions (ArrayRef<PredTransition> LastTransitions, unsigned int FromClassIdx, CodeGenSchedModels & SchedModels)

    Create a new SchedClass for each variant found by inferFromRW. Pass

    Defined at line 1617 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • bool isPointerOperand (Value * V)

    Defined at line 1618 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • void printZeroUpperMove (const MachineInstr * MI, MCStreamer & OutStreamer, int SclWidth, int VecWidth, const char * ShuffleComment)

    Defined at line 1618 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • int readMaskRegister (struct InternalInstruction * insn)

    Read an mask register from the opcode field of an instruction.

    Parameters

    insn - The instruction whose opcode field is to be read.

    Returns

    - 0 on success; nonzero otherwise.

    Defined at line 1619 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool canUsePrivateLabel (const MCAsmInfo & AsmInfo, const MCSection & Section)

    Defined at line 1619 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • void DumpLiteral16Section (MachOObjectFile * O, const char * sect, uint32_t sect_size, uint64_t sect_addr, bool print_addresses)

    Defined at line 1619 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool valueCoversEntireFragment (Type * ValTy, DbgVariableRecord * DVR)

    Check if the alloc size of

    is large enough to cover the variable

    (or fragment of the variable) described by

    This is primarily intended as a helper for the different

    ConvertDebugDeclareToDebugValue functions. The dbg.declare that is converted

    describes an alloca'd variable, so we need to use the alloc size of the

    value when doing the comparison. E.g. an i1 value will be identified as

    covering an n-bit fragment, if the store size of i1 is at least n bits.

    Defined at line 1620 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool isIdempotentBinaryIntrinsic (Intrinsic::ID IID)

    Helper to match idempotent binary intrinsics, namely, intrinsics where

    `f(f(x, y), y) == f(x, y)` holds.

    Defined at line 1621 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • Value * simplifyAndOrOfICmpsWithConstants (ICmpInst * Cmp0, ICmpInst * Cmp1, bool IsAnd)

    Test if a pair of compares with a shared operand and 2 constants has an

    empty set intersection, full set union, or if one compare is a superset of

    the other.

    Defined at line 1621 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool shouldEmitUdt (const DIType * T)

    Defined at line 1622 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • SmallVector getNames (const DWARFDie & DIE, bool IncludeStrippedTemplateNames, bool IncludeObjCNames, bool IncludeLinkageName)

    Constructs a full name for a DIE. Potentially it does recursive lookup on

    DIEs. This can lead to extraction of DIEs in a different CU or TU.

    Defined at line 1622 of file llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp

  • bool validThroughout (LexicalScopes & LScopes, const MachineInstr * DbgValue, const MachineInstr * RangeEnd, const InstructionOrdering & Ordering)

    Determine whether a *singular* DBG_VALUE is valid for the entirety of its

    enclosing lexical scope. The check ensures there are no other instructions

    in the same lexical scope preceding the DBG_VALUE and that its range is

    either open or otherwise rolls off the end of the scope.

    Defined at line 1622 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void processSingleLocVars (FunctionLoweringInfo & FuncInfo, const FunctionVarLocs * FnVarLocs)

    Collect single location variable information generated with assignment

    tracking. This is done after argument lowering in case the declarations

    refer to arguments.

    Defined at line 1623 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • basic_string getCoverageMapErrString (coveragemap_error Err, const std::string & ErrMsg)

    Defined at line 1623 of file llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  • void addSymbolizer (MCContext & Ctx, const Target * Target, const Triple & TheTriple, MCDisassembler * DisAsm, uint64_t SectionAddr, ArrayRef Bytes, SectionSymbolsTy & Symbols, int & SynthesizedLabelNames)

    Create an MCSymbolizer for the target and add it to the MCDisassembler.

    This is currently only used on AMDGPU, and assumes the format of the

    void * argument passed to AMDGPU's createMCSymbolizer.

    Defined at line 1623 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void assertCHRRegionsHaveBiasedBranchOrSelect (CHRScope * Scope)

    Assert that all the CHR regions of the scope have a biased branch or select.

    Defined at line 1624 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • void addNonNullAttrs (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Deduce nonnull attributes for the SCC.

    Defined at line 1624 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool isInterestingPointerComparison (Instruction * I)

    This is a rough heuristic; it may cause both false positives and

    false negatives. The proper implementation requires cooperation with

    the frontend.

    Defined at line 1625 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • bool checkAndReplaceCmp (CmpIntrinsic * I, ConstraintInfo & Info, SmallVectorImpl<Instruction *> & ToRemove)

    Defined at line 1627 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateClassType (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNumber, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits,  Flags, LLVMMetadataRef DerivedFrom, LLVMMetadataRef * Elements, unsigned int NumElements, LLVMMetadataRef VTableHolder, LLVMMetadataRef TemplateParamsNode, const char * UniqueIdentifier, size_t UniqueIdentifierLen)

    Create debugging information entry for a class.

    Parameters

    Scope Scope in which this class is defined.
    Name Class name.
    NameLen The length of the C string passed to
    File File where this member is defined.
    LineNumber Line number.
    SizeInBits Member size.
    AlignInBits Member alignment.
    OffsetInBits Member offset.
    Flags Flags to encode member attribute, e.g. private.
    DerivedFrom Debug info of the base class of this type.
    Elements Class members.
    NumElements Number of class elements.
    VTableHolder Debug info of the base class that contains vtable for this type. This is used in DW_AT_containing_type. See DWARF documentation for more info.
    TemplateParamsNode Template type parameters.
    UniqueIdentifier A unique identifier for the type.
    UniqueIdentifierLen Length of the unique identifier.

    Defined at line 1629 of file llvm/lib/IR/DebugInfo.cpp

  • Instruction * narrowUDivURem (BinaryOperator & I, InstCombinerImpl & IC)

    If we have zero-extended operands of an unsigned div or rem, we may be able

    to narrow the operation (sink the zext below the math).

    Defined at line 1629 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • void writeConstantInternal (raw_ostream & Out, const Constant * CV, AsmWriterContext & WriterCtx)

    Defined at line 1629 of file llvm/lib/IR/AsmWriter.cpp

  • StringRef getDeoptLowering (CallBase * Call)

    Defined at line 1631 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • int readOperands (struct InternalInstruction * insn)

    Consults the specifier for an instruction and consumes all

    operands for that instruction, interpreting them as it goes.

    Defined at line 1632 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool matchUAddWithOverflowConstantEdgeCases (CmpInst * Cmp, BinaryOperator *& Add)

    Match special-case patterns that check for unsigned add overflow.

    Defined at line 1634 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • unsigned int getCIEVersion (bool IsEH, unsigned int DwarfVersion)

    Defined at line 1635 of file llvm/lib/MC/MCDwarf.cpp

  • int findInsertLocation (MachineBasicBlock * MBB, SlotIndex Idx, LiveIntervals & LIS, int & BBSkipInstsMap)

    Find an iterator for inserting a DBG_VALUE instruction.

    Defined at line 1635 of file llvm/lib/CodeGen/LiveDebugVariables.cpp

  • Instruction * foldTruncInsEltPair (InsertElementInst & InsElt, bool IsBigEndian, InstCombiner::BuilderTy & Builder)

    If we are inserting 2 halves of a value into adjacent elements of a vector,

    try to convert to a single insert with appropriate bitcasts.

    Defined at line 1638 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • BasicBlock * getBasicBlockByName (Function & F, StringRef Name)

    Defined at line 1639 of file llvm/unittests/Analysis/MemorySSATest.cpp

  • template <typename DerivedCCG, typename FuncTy, typename CallTy>
    void checkEdge (const std::shared_ptr<ContextEdge<DerivedCCG, FuncTy, CallTy>> & Edge)

    Defined at line 1639 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • bool isInterestingPointerSubtraction (Instruction * I)

    This is a rough heuristic; it may cause both false positives and

    false negatives. The proper implementation requires cooperation with

    the frontend.

    Defined at line 1639 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • void ComputePostOrders (Function & F, SmallVectorImpl<BasicBlock *> & PostOrder, SmallVectorImpl<BasicBlock *> & ReverseCFGPostOrder, unsigned int NoObjCARCExceptionsMDKind, DenseMap<const BasicBlock *, BBState> & BBStates)

    Defined at line 1639 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • Value * emitGetSwiftErrorValue (IRBuilder<> & Builder, Type * ValueTy, coro::Shape & Shape)

    Get the current swifterror value.

    Defined at line 1643 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • Value * foldIdempotentBinaryIntrinsicRecurrence (InstCombinerImpl & IC, IntrinsicInst * II)

    Attempt to simplify value-accumulating recurrences of kind:

    %umax.acc = phi i8 [ %umax, %backedge ], [ %a, %entry ]

    %umax = call i8

    .umax.i8(i8 %umax.acc, i8 %b)

    And let the idempotent binary intrinsic be hoisted, when the operands are

    known to be loop-invariant.

    Defined at line 1644 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • void DumpLiteralPointerSection (MachOObjectFile * O, const SectionRef & Section, const char * sect, uint32_t sect_size, uint64_t sect_addr, bool print_addresses)

    Defined at line 1644 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void insertDbgValueOrDbgVariableRecord (DIBuilder & Builder, Value * DV, DILocalVariable * DIVar, DIExpression * DIExpr, const DebugLoc & NewLoc, ilist_iterator_w_bits Instr)

    Defined at line 1645 of file llvm/lib/Transforms/Utils/Local.cpp

  • void printBroadcast (const MachineInstr * MI, MCStreamer & OutStreamer, int Repeats, int BitWidth)

    Defined at line 1645 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • optional getExpressionFrameOffset (ArrayRef Expr, optional FrameBaseReg)

    Defined at line 1645 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • Instruction * getInstructionByName (Function & F, StringRef Name)

    Defined at line 1646 of file llvm/unittests/Analysis/MemorySSATest.cpp

  • void assertBranchOrSelectConditionHoisted (CHRScope * Scope, BasicBlock * PreEntryBlock)

    Assert that all the condition values of the biased branches and selects have

    been hoisted to the pre-entry block or outside of the scope.

    Defined at line 1646 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • void makeStatepointExplicitImpl (CallBase * Call, const SmallVectorImpl<Value *> & BasePtrs, const SmallVectorImpl<Value *> & LiveVariables, PartiallyConstructedSafepointRecord & Result, int & Replacements, const int & PointerToBase, GCStrategy * GC)

    Defined at line 1646 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool areAllOperandsNonInsts (Value * V)

    Checks if the provided value does not require scheduling. It does not

    require scheduling if this is not an instruction or it is an instruction

    that does not read/write memory and all operands are either not instructions

    or phi nodes or instructions from different blocks.

    Defined at line 1844 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isUsedOutsideBlock (Value * V)

    Checks if the provided value does not require scheduling. It does not

    require scheduling if this is not an instruction or it is an instruction

    that does not read/write memory and all users are phi nodes or instructions

    from the different blocks.

    Defined at line 1861 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateArtificialType (LLVMDIBuilderRef Builder, LLVMMetadataRef Type)

    Create a uniqued DIType* clone with FlagArtificial set.

    Parameters

    Builder The DIBuilder.
    Type The underlying type.

    Defined at line 1648 of file llvm/lib/IR/DebugInfo.cpp

  • bool processGlobal (GlobalValue & GV, function_ref<TargetTransformInfo &(Function &)> GetTTI, function_ref<TargetLibraryInfo &(Function &)> GetTLI, function_ref<DominatorTree &(Function &)> LookupDomTree)

    Analyze the specified global variable and optimize it if possible. If we

    make a change, return true.

    Defined at line 1648 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • unsigned int getCOFFSectionFlags (SectionKind K, const TargetMachine & TM)

    ===----------------------------------------------------------------------===//

    COFF

    ===----------------------------------------------------------------------===//

    Defined at line 1648 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • template <typename DerivedCCG, typename FuncTy, typename CallTy>
    void checkNode (const ContextNode<DerivedCCG, FuncTy, CallTy> * Node, bool CheckEdges)

    Defined at line 1648 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • void removeEntryFromStack (const StackEntry & E, ConstraintInfo & Info, Module * ReproducerModule, SmallVectorImpl<ReproducerEntry> & ReproducerCondStack, SmallVectorImpl<StackEntry> & DFSInStack)

    Defined at line 1649 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • bool canLoopBeDeleted (Loop * L, SmallVector<RewritePhi, 8> & RewritePhiSet)

    Check whether it is possible to delete the loop after rewriting exit

    value. If it is possible, ignore ReplaceExitValue and do rewriting

    aggressively.

    Defined at line 1649 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • template <class ELFT>
    void getAddend (uint64_t & , const Elf_Rel_Impl<ELFT, false> & )

    Defined at line 1650 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • template <class ELFT>
    void getAddend (uint64_t & ToSet, const Elf_Rel_Impl<ELFT, true> & Rela)

    Defined at line 1653 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • Value * canonicalizeClampLike (SelectInst & Sel0, ICmpInst & Cmp0, InstCombiner::BuilderTy & Builder, InstCombiner & IC)

    See if this is a pattern like:

    %old_cmp1 = icmp slt i32 %x, C2

    %old_replacement = select i1 %old_cmp1, i32 %target_low, i32 %target_high

    %old_x_offseted = add i32 %x, C1

    %old_cmp0 = icmp ult i32 %old_x_offseted, C0

    %r = select i1 %old_cmp0, i32 %x, i32 %old_replacement

    This can be rewritten as more canonical pattern:

    %new_cmp1 = icmp slt i32 %x, -C1

    %new_cmp2 = icmp sge i32 %x, C0-C1

    %new_clamped_low = select i1 %new_cmp1, i32 %target_low, i32 %x

    %r = select i1 %new_cmp2, i32 %target_high, i32 %new_clamped_low

    Iff -C1 s

    <

    = C2 s

    <

    = C0-C1

    Also ULT predicate can also be UGT iff C0 != -1 (+invert result)

    SLT predicate can also be SGT iff C2 != INT_MAX (+invert res.)

    Defined at line 1653 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • DIExpression * dropInitialDeref (const DIExpression * DIExpr)

    Defined at line 1656 of file llvm/lib/Transforms/Utils/Local.cpp

  • const char * LLVMDITypeGetName (LLVMMetadataRef DType, size_t * Length)

    Get the name of this DIType.

    Parameters

    DType The DIType.
    Length The length of the returned string.

    Defined at line 1658 of file llvm/lib/IR/DebugInfo.cpp

  • Value * emitSetSwiftErrorValue (IRBuilder<> & Builder, Value * V, coro::Shape & Shape)

    Set the given value as the current swifterror value.

    Returns a slot that can be used as a swifterror slot.

    Defined at line 1658 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • template <class T>
    Error initRelocations (RelocationSection * Relocs, T RelRange)

    Defined at line 1658 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • Value * simplifyAndOfICmpsWithAdd (ICmpInst * Op0, ICmpInst * Op1, const InstrInfoQuery & IIQ)

    Defined at line 1658 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • PHINode * findOrCreatePHIInBlock (PHINode & PN, OutlinableRegion & Region, BasicBlock * OverallPhiBlock, const DenseMap<Value *, Value *> & OutputMappings, DenseSet<PHINode *> & UsedPHIs)

    Find, or add PHINode

    to the combined PHINode Block

    in order to condense the number of instructions added to the outlined

    function.

    Parameters

    PN [in] - The PHINode that we are finding the canonical numbers for.
    Region [in] - The OutlinableRegion containing
    OverallPhiBlock [in] - The overall PHIBlock we are trying to find in.
    OutputMappings [in] - The mapping of output values from outlined region to their original values.
    UsedPHIs [in, out] - The PHINodes in the block that have already been matched.

    Returns

    the newly found or created PHINode in

    Defined at line 1658 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void emitSchedModelHelperEpilogue (raw_ostream & OS, bool ShouldReturnZero)

    Used by method `SubtargetEmitter::emitSchedModelHelpersImpl()` to generate

    epilogue code for the auto-generated helper.

    Defined at line 1660 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • bool printExtend (const MachineInstr * MI, MCStreamer & OutStreamer, int SrcEltBits, int DstEltBits, bool IsSext)

    Defined at line 1663 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • uint64_t LLVMDITypeGetSizeInBits (LLVMMetadataRef DType)

    Get the size of this DIType in bits.

    Parameters

    DType The DIType.

    Defined at line 1664 of file llvm/lib/IR/DebugInfo.cpp

  • Value * simplifyReductionOperand (Value * Arg, bool CanReorderLanes)

    Defined at line 1664 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • bool upgradeMemoryAttr (MemoryEffects & ME, Kind Kind)

    Defined at line 1665 of file llvm/lib/AsmParser/LLParser.cpp

  • bool isMemModifiedBetween (ilist_iterator_w_bits Begin, ilist_iterator_w_bits End, const MemoryLocation & Loc, AAResults & AA)

    Check if memory loc modified between two instrs in the same BB

    Defined at line 1666 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • bool areIdenticalUpToCommutativity (const Instruction * I1, const Instruction * I2)

    Defined at line 1666 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • int makePerProcessorTransitions (const PredTransition & Trans, ArrayRef ProcIndices)

    Defined at line 1667 of file llvm/utils/TableGen/Common/CodeGenSchedule.cpp

  • void speculatePHINodeLoads (IRBuilderTy & IRB, PHINode & PN)

    Defined at line 1667 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool checkOrAndOpImpliedByOther (FactOrCheck & CB, ConstraintInfo & Info, Module * ReproducerModule, SmallVectorImpl<ReproducerEntry> & ReproducerCondStack, SmallVectorImpl<StackEntry> & DFSInStack, SmallVectorImpl<Instruction *> & ToRemove)

    Check if either the first condition of an AND or OR is implied by the

    (negated in case of OR) second condition or vice versa.

    Defined at line 1667 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • uint64_t LLVMDITypeGetOffsetInBits (LLVMMetadataRef DType)

    Get the offset of this DIType in bits.

    Parameters

    DType The DIType.

    Defined at line 1668 of file llvm/lib/IR/DebugInfo.cpp

  • void replaceAsyncResumeFunction (CoroSuspendAsyncInst * Suspend, Value * Continuation)

    Defined at line 1668 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • APFloat constantFoldFpUnary (const MachineInstr & MI, const MachineRegisterInfo & MRI, const APFloat & Val)

    Defined at line 1668 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • pair getFirstFileTripleAndFeatures ()

    Defined at line 1668 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • unsigned int getGNUBinOpPrecedence (TokenKind K, MCBinaryExpr::Opcode & Kind, bool ShouldUseLogicalShr, bool EndExpressionAtGreater)

    Defined at line 1670 of file llvm/lib/MC/MCParser/MasmParser.cpp

  • bool hasMCSchedPredicate (const Record * Rec)

    Defined at line 1671 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • uint32_t LLVMDITypeGetAlignInBits (LLVMMetadataRef DType)

    Get the alignment of this DIType in bits.

    Parameters

    DType The DIType.

    Defined at line 1672 of file llvm/lib/IR/DebugInfo.cpp

  • void AddAlignmentAssumptions (CallBase & CB, InlineFunctionInfo & IFI)

    If the inlined function has non-byval align arguments, then

    add

    .assume-based alignment assumptions to preserve this information.

    Defined at line 1672 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool findGCD (unsigned int Bits, const APInt & AM, const APInt & BM, const APInt & Delta, APInt & G, APInt & X, APInt & Y)

    Kirch's algorithm, from

    Optimizing Supercompilers for Supercomputers

    Michael Wolfe

    MIT Press, 1989

    Program 2.1, page 29.

    Computes the GCD of AM and BM.

    Also finds a solution to the equation ax - by = gcd(a, b).

    Returns true if dependence disproved; i.e., gcd does not divide Delta.

    We don't use OverflowSafeSignedAPInt here because it's known that this

    algorithm doesn't overflow.

    Defined at line 1674 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • bool allSameType (ArrayRef VL)

    Defined at line 1675 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void doInstrumentAddress (AddressSanitizer * Pass, Instruction * I, Instruction * InsertBefore, Value * Addr, MaybeAlign Alignment, unsigned int Granularity, TypeSize TypeStoreSize, bool IsWrite, Value * SizeArgument, bool UseCalls, uint32_t Exp, RuntimeCallInserter & RTCI)

    Defined at line 1675 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • unsigned int LLVMDITypeGetLine (LLVMMetadataRef DType)

    Get the source line where this DIType is declared.

    Parameters

    DType The DIType.

    Defined at line 1676 of file llvm/lib/IR/DebugInfo.cpp

  • uint16_t LLVMGetDINodeTag (LLVMMetadataRef MD)

    Get the dwarf::Tag of a DINode

    Defined at line 1654 of file llvm/lib/IR/DebugInfo.cpp

  • Value * emitSetAndGetSwiftErrorValueAround (Instruction * Call, AllocaInst * Alloca, coro::Shape & Shape)

    Set the swifterror value from the given alloca before a call,

    then put in back in the alloca afterwards.

    Returns an address that will stand in for the swifterror slot

    until splitting.

    Defined at line 1676 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • pair FindCheckType (const FileCheckRequest & Req, StringRef Buffer, StringRef Prefix)

    Defined at line 1677 of file llvm/lib/FileCheck/FileCheck.cpp

  • StringRef getSegmentName (const MachOObjectFile * MachO, const SectionRef & Section)

    Defined at line 1677 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • uint32_t ARMCountOfUnwindCodes (ArrayRef Insns)

    Defined at line 1678 of file llvm/lib/MC/MCWin64EH.cpp

  • void ProfileTernOpInit (FoldingSetNodeID & ID, unsigned int Opcode, const Init * LHS, const Init * MHS, const Init * RHS, const RecTy * Type)

    Defined at line 1679 of file llvm/lib/TableGen/Record.cpp

  •  LLVMDITypeGetFlags (LLVMMetadataRef DType)

    Get the flags associated with this DIType.

    Parameters

    DType The DIType.

    Defined at line 1680 of file llvm/lib/IR/DebugInfo.cpp

  • Expected getSectionName (const llvm::object::COFFObjectFile * Obj, int32_t SectionNumber, const coff_section * Section)

    Defined at line 1681 of file llvm/tools/llvm-readobj/COFFDumper.cpp

  • void addNoUndefAttrs (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Deduce noundef attributes for the SCC.

    Defined at line 1681 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • int findNextInsertLocation (MachineBasicBlock * MBB, int I, SlotIndex StopIdx, ArrayRef<MachineOperand> LocMOs, LiveIntervals & LIS, const TargetRegisterInfo & TRI)

    Find an iterator for inserting the next DBG_VALUE instruction

    (or end if no more insert locations found).

    Defined at line 1682 of file llvm/lib/CodeGen/LiveDebugVariables.cpp

  • bool doesInTreeUserNeedToExtract (Value * Scalar, Instruction * UserInst, TargetLibraryInfo * TLI, const TargetTransformInfo * TTI)

    Defined at line 1682 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • Instruction * reassociateFCmps (BinaryOperator & BO, InstCombiner::BuilderTy & Builder)

    This a limited reassociation for a special case (see above) where we are

    checking if two values are either both NAN (unordered) or not-NAN (ordered).

    This could be handled more generally in '-reassociation', but it seems like

    an unlikely pattern for a large number of logic ops and fcmps.

    Defined at line 1682 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • template <class ELFT>
    Error elf2yaml (raw_ostream & Out, const object::ELFFile<ELFT> & Obj, unique_ptr DWARFCtx)

    Defined at line 1683 of file llvm/tools/obj2yaml/elf2yaml.cpp

  • void coerceArguments (int & Builder, FunctionType * FnTy, ArrayRef FnArgs, SmallVectorImpl<Value *> & CallArgs)

    Coerce the arguments in

    according to

    in

    Defined at line 1683 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool hasMCSchedPredicates (const CodeGenSchedTransition & T)

    Defined at line 1685 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • size_t SkipWord (StringRef Str, size_t Loc)

    From the given position, find the next character after the word.

    Defined at line 1687 of file llvm/lib/FileCheck/FileCheck.cpp

  • void createFakeELFSections (ObjectFile & Obj)

    Defined at line 1687 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • const GlobalValue * getComdatGVForCOFF (const GlobalValue * GV)

    Defined at line 1688 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • void ChangeCalleesToFastCall (Function * F)

    Walk all of the direct calls of the specified function, changing them to

    FastCC.

    Defined at line 1689 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void removeCommonBlendMask (VPBlendRecipe * Blend)

    Try to see if all of

    masks share a common value logically and'ed

    and remove it from the masks.

    Defined at line 1689 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void collectVariantClasses (const CodeGenSchedModels & SchedModels, IdxVec & VariantClasses, bool OnlyExpandMCInstPredicates)

    Defined at line 1689 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • void printSignExtend (const MachineInstr * MI, MCStreamer & OutStreamer, int SrcEltBits, int DstEltBits)

    Defined at line 1692 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • bool shouldDump (SymbolicFile & Obj)

    Defined at line 1693 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • AttributeList StripAttr (LLVMContext & C, AttributeList Attrs, AttrKind A)

    Defined at line 1696 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void addDefaultPrefixes (FileCheckRequest & Req)

    Defined at line 1696 of file llvm/lib/FileCheck/FileCheck.cpp

  • void printZeroExtend (const MachineInstr * MI, MCStreamer & OutStreamer, int SrcEltBits, int DstEltBits)

    Defined at line 1696 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • template <Intrinsic::ID IntrID>
    Value * foldMinimumOverTrailingOrLeadingZeroCount (Value * I0, Value * I1, const DataLayout & DL, InstCombiner::BuilderTy & Builder)

    Fold an unsigned minimum of trailing or leading zero bits counts:

    umin(cttz(CtOp, ZeroUndef), ConstOp) --> cttz(CtOp | (1

    <

    <

    ConstOp))

    umin(ctlz(CtOp, ZeroUndef), ConstOp) --> ctlz(CtOp | (SignedMin

    >> ConstOp))

    Defined at line 1696 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateExpression (LLVMDIBuilderRef Builder, uint64_t * Addr, size_t Length)

    Create a new descriptor for the specified variable which has a complex

    address expression for its address.

    Parameters

    Builder The DIBuilder.
    Addr An array of complex address operations.
    Length Length of the address operation array.

    Defined at line 1703 of file llvm/lib/IR/DebugInfo.cpp

  • bool checkIsIndPhi (PHINode * Phi, Loop * L, ScalarEvolution * SE, InductionDescriptor & ID)

    Checks if it is safe to call InductionDescriptor::isInductionPHI for

    and returns true if this Phi is an induction phi in the loop. When

    isInductionPHI returns true,

    will be also be set by isInductionPHI.

    Defined at line 1703 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • std::optional<OwningBinary<Binary>> fetchBinaryByBuildID (const ObjectFile & Obj)

    Tries to fetch a more complete version of the given object file using its

    Build ID. Returns std::nullopt if nothing was found.

    Defined at line 1703 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void RemoveAttribute (Function * F, AttrKind A)

    Defined at line 1704 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • OverflowSafeSignedAPInt floorOfQuotient (const OverflowSafeSignedAPInt & OA, const OverflowSafeSignedAPInt & OB)

    Defined at line 1704 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • int getSelectionForCOFF (const GlobalValue * GV)

    Defined at line 1705 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • void getXCOFFExports (XCOFFObjectFile * XCOFFObj, int & SymbolList, StringRef ArchiveName)

    Defined at line 1705 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • Value * simplifyAndOrOfICmpsWithCtpop (ICmpInst * Cmp0, ICmpInst * Cmp1, bool IsAnd)

    Try to simplify and/or of icmp with ctpop intrinsic.

    Defined at line 1706 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void eliminateSwiftErrorAlloca (Function & F, AllocaInst * Alloca, coro::Shape & Shape)

    Eliminate a formerly-swifterror alloca by inserting the get/set

    intrinsics and attempting to MemToReg the alloca away.

    Defined at line 1706 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void simplifyBlends (VPlan & Plan)

    Normalize and simplify VPBlendRecipes. Should be run after simplifyRecipes

    to make sure the masks are simplified.

    Defined at line 1706 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • WeightedFile parseWeightedFile (const StringRef & WeightedFilename)

    Defined at line 1707 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void collectProcessorIndices (const CodeGenSchedClass & SC, IdxVec & ProcIndices)

    Defined at line 1708 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateConstantValueExpression (LLVMDIBuilderRef Builder, uint64_t Value)

    Create a new descriptor for the specified variable that does not have an

    address, but does have a constant value.

    Parameters

    Builder The DIBuilder.
    Value The constant value.

    Defined at line 1709 of file llvm/lib/IR/DebugInfo.cpp

  • const Init * ItemApply (const Init * LHS, const Init * MHSe, const Init * RHS, const Record * CurRec)

    Defined at line 1709 of file llvm/lib/TableGen/Record.cpp

  • ConstantInt * extractNumericCGTypeId (const Function & F)

    Extracts a generalized numeric type identifier of a Function's type from

    type metadata. Returns null if metadata cannot be found.

    Defined at line 1709 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • void HandleByValArgumentInit (Type * ByValType, Value * Dst, Value * Src, MaybeAlign SrcAlign, Module * M, BasicBlock * InsertBlock, InlineFunctionInfo & IFI, Function * CalledFunc)

    Defined at line 1709 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • Value * matchCondition (BranchInst * BI, BasicBlock * LoopEntry, bool JmpOnZero)

    Check if the given conditional branch is based on the comparison between

    a variable and zero, and if the variable is non-zero or zero (JmpOnZero is

    true), the control yields to the loop entry. If the branch matches the

    behavior, the variable involved in the comparison is returned. This function

    will be called to see if the precondition and postcondition of the loop are

    in desirable form.

    Defined at line 1709 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • MemoryLocation getLocation (Instruction * I)

    Defined at line 1711 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isZeroSize (Value * Size)

    Defined at line 1715 of file llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateGlobalVariableExpression (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, const char * Linkage, size_t LinkLen, LLVMMetadataRef File, unsigned int LineNo, LLVMMetadataRef Ty, LLVMBool LocalToUnit, LLVMMetadataRef Expr, LLVMMetadataRef Decl, uint32_t AlignInBits)

    Create a new descriptor for the specified variable.

    Parameters

    Scope Variable scope.
    Name Name of the variable.
    NameLen The length of the C string passed to
    Linkage Mangled name of the variable.
    LinkLen The length of the C string passed to
    File File where this variable is defined.
    LineNo Line number.
    Ty Variable Type.
    LocalToUnit Boolean flag indicate whether this variable is externally visible or not.
    Expr The location of the global relative to the attached GlobalVariable.
    Decl Reference to the corresponding declaration. variables.
    AlignInBits Variable alignment(or 0 if no alignment attr was specified)

    Defined at line 1715 of file llvm/lib/IR/DebugInfo.cpp

  • ConstantRange computeShlNUW (const ConstantRange & LHS, const ConstantRange & RHS)

    Defined at line 1715 of file llvm/lib/IR/ConstantRange.cpp

  • const Init * ForeachDagApply (const Init * LHS, const DagInit * MHSd, const Init * RHS, const Record * CurRec)

    Defined at line 1716 of file llvm/lib/TableGen/Record.cpp

  • bool hasChangeableCCImpl (Function * F)

    Return true if this is a calling convention that we'd like to change. The

    idea here is that we don't want to mess with the convention if the user

    explicitly requested something with performance implications like coldcc,

    GHC, or anyregcc.

    Defined at line 1716 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool hasVectorBeenPadded (const DICompositeType * CTy)

    Returns true if the vector's size differs from the sum of sizes of elements

    the user specified. This can occur if the vector has been rounded up to

    fit memory alignment constraints.

    Defined at line 1718 of file llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp

  • Value * createPlaceholderForShuffleVector (Value * V)

    ===----------------------------------------------------------------------===//

    ShuffleVectorInst Implementation

    ===----------------------------------------------------------------------===//

    Defined at line 1719 of file llvm/lib/IR/Instructions.cpp

  • void disassembleObject (ObjectFile & Obj, const ObjectFile & DbgObj, DisassemblerTarget & PrimaryTarget, std::optional<DisassemblerTarget> & SecondaryTarget, SourcePrinter & SP, bool InlineRelocs, raw_ostream & OS)

    Defined at line 1719 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool isSimple (Instruction * I)

    Defined at line 1720 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isAlwaysTrue (const CodeGenSchedTransition & T)

    Defined at line 1721 of file llvm/utils/TableGen/SubtargetEmitter.cpp

  •  map_to_llvmopcode (int opcode)

    -- Opcode mapping

    Defined at line 1721 of file llvm/lib/IR/Core.cpp

  • void addWeightedInput (WeightedFileVector & WNI, const WeightedFile & WF)

    Defined at line 1721 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • OverflowSafeSignedAPInt ceilingOfQuotient (const OverflowSafeSignedAPInt & OA, const OverflowSafeSignedAPInt & OB)

    Defined at line 1722 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • Instruction * matchDeMorgansLaws (BinaryOperator & I, InstCombiner & IC)

    Match variations of De Morgan's Laws:

    (~A

    &

    ~B) == (~(A | B))

    (~A | ~B) == (~(A

    &

    B))

    Defined at line 1723 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • Error sanitizeArguments (const Triple & TT, const char * ArgV0)

    Defined at line 1725 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • Value * simplifyAndOfICmps (ICmpInst * Op0, ICmpInst * Op1, const SimplifyQuery & Q)

    Defined at line 1726 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • LLVMMetadataRef LLVMDIGlobalVariableExpressionGetVariable (LLVMMetadataRef GVE)

    Retrieves the

    associated with this global variable expression.

    Parameters

    GVE The global variable expression.

    Defined at line 1727 of file llvm/lib/IR/DebugInfo.cpp

  • void initializeMemoryDependenceWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 1727 of file llvm/lib/Analysis/MemoryDependenceAnalysis.cpp

  • bool leftDistributesOverRight (BinaryOps LOp, bool HasNUW, bool HasNSW, Intrinsic::ID ROp)

    Return whether "X LOp (Y ROp Z)" is always equal to

    "(X LOp Y) ROp (X LOp Z)".

    Defined at line 1730 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • bool collectMultiplyFactors (SmallVectorImpl<ValueEntry> & Ops, SmallVectorImpl<Factor> & Factors)

    Build up a vector of value/power pairs factoring a product.

    Given a series of multiplication operands, build a vector of factors and

    the powers each is raised to when forming the final product. Sort them in

    the order of descending power.

    (x*x) -> [(x, 2)]

    ((x*x)*x) -> [(x, 3)]

    ((((x*y)*x)*y)*x) -> [(x, 3), (y, 2)]

    Defined at line 1730 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • LLVMMetadataRef LLVMDIBuilderGetOrCreateSubrange (LLVMDIBuilderRef Builder, int64_t LowerBound, int64_t Count)

    Create a descriptor for a value range.

    Parameters

    Builder The DIBuilder.
    LowerBound Lower bound of the subrange, e.g. 0 for C, 1 for Fortran.
    Count Count of elements in the subrange.

    Defined at line 1865 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIGlobalVariableExpressionGetExpression (LLVMMetadataRef GVE)

    Retrieves the

    associated with this global variable expression.

    Parameters

    GVE The global variable expression.

    Defined at line 1731 of file llvm/lib/IR/DebugInfo.cpp

  • int map_from_llvmopcode ( code)

    Defined at line 1731 of file llvm/lib/IR/Core.cpp

  • void deleteDeadClonedBlocks (Loop & L, ArrayRef ExitBlocks, ArrayRef VMaps, DominatorTree & DT, MemorySSAUpdater * MSSAU)

    Defined at line 1731 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void eliminateSwiftErrorArgument (Function & F, Argument & Arg, coro::Shape & Shape, SmallVectorImpl<AllocaInst *> & AllocasToPromote)

    "Eliminate" a swifterror argument by reducing it to the alloca case

    and then loading and storing in the prologue and epilog.

    The argument keeps the swifterror flag.

    Defined at line 1732 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • void addMask (SmallVectorImpl<int> & Mask, ArrayRef SubMask, bool ExtendingManyInputs)

    Shuffles

    in accordance with the given

    Parameters

    ExtendingManyInputs Supports reshuffling of the mask with not only one but two input vectors.

    Defined at line 1733 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • Value * HandleByValArgument (Type * ByValType, Value * Arg, Instruction * TheCall, const Function * CalledFunc, InlineFunctionInfo & IFI, MaybeAlign ByValAlignment)

    When inlining a call site that has a byval argument,

    we have to make the implicit memcpy explicit by adding it.

    Defined at line 1734 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • ScalarizationResult canScalarizeAccess (VectorType * VecTy, Value * Idx, Instruction * CtxI, AssumptionCache & AC, const DominatorTree & DT)

    Check if it is legal to scalarize a memory access to

    at index

    must access a valid vector element.

    Defined at line 1735 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • LLVMMetadataRef LLVMDIVariableGetFile (LLVMMetadataRef Var)

    Get the metadata of the file associated with a given variable.

    Parameters

    Var The variable object.

    Defined at line 1736 of file llvm/lib/IR/DebugInfo.cpp

  • uint64_t getOptimizationFlags (const Value * V)

    Defined at line 1736 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • Value * simplifyX86insertps (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Defined at line 1737 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • ConstantRange computeShlNSWWithNNegLHS (const APInt & LHSMin, const APInt & LHSMax, unsigned int RHSMin, unsigned int RHSMax)

    Defined at line 1738 of file llvm/lib/IR/ConstantRange.cpp

  • InstructionCost getCostForIntrinsics (Intrinsic::ID ID, ArrayRef Operands, const VPRecipeWithIRFlags & R, ElementCount VF, VPCostContext & Ctx)

    Compute the cost for the intrinsic

    with

    produced by

    Defined at line 1738 of file llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

  • void computeUberSets (int & UberSets, int & RegSets, CodeGenRegBank & RegBank)

    Partition registers into UberRegSets, where each set is the transitive

    closure of the union of overlapping register classes.

    UberRegSets[0] is a special non-allocatable set.

    Defined at line 1739 of file llvm/utils/TableGen/Common/CodeGenRegisters.cpp

  • LLVMMetadataRef LLVMDIVariableGetScope (LLVMMetadataRef Var)

    Get the metadata of the scope associated with a given variable.

    Parameters

    Var The variable object.

    Defined at line 1740 of file llvm/lib/IR/DebugInfo.cpp

  • void hoistConditionalLoadsStores (BranchInst * BI, SmallVectorImpl<Instruction *> & SpeculatedConditionalLoadsStores, optional Invert, Instruction * Sel)

    If the target supports conditional faulting,

    we look for the following pattern:

    and transform it into:

    where cload/cstore are represented by llvm.masked.load/store intrinsics,

    e.g.

    So we need to turn hoisted load/store into cload/cstore.

    Parameters

    BI The branch instruction.
    SpeculatedConditionalLoadsStores The load/store instructions that will be speculated.
    Invert indicates if speculates FalseBB. Only used in triangle CFG.

    Code

                                                    
                                                           BB:
                                                             ...
                                                             %cond = icmp ult %x, %y
                                                             br i1 %cond, label %TrueBB, label %FalseBB
                                                           FalseBB:
                                                             store i32 1, ptr %q, align 4
                                                             ...
                                                           TrueBB:
                                                             %maskedloadstore = load i32, ptr %b, align 4
                                                             store i32 %maskedloadstore, ptr %p, align 4
                                                             ...
                                                    
                                                
                                                    
                                                           BB:
                                                             ...
                                                             %cond = icmp ult %x, %y
                                                             %maskedloadstore = cload i32, ptr %b, %cond
                                                             cstore i32 %maskedloadstore, ptr %p, %cond
                                                             cstore i32 1, ptr %q, ~%cond
                                                             br i1 %cond, label %TrueBB, label %FalseBB
                                                           FalseBB:
                                                             ...
                                                           TrueBB:
                                                             ...
                                                    
                                                
                                                    
                                                           %vcond = bitcast i1 %cond to <1 x i1>
                                                           %v0 = call <1 x i32> @llvm.masked.load.v1i32.p0
                                                                                 (ptr %b, i32 4, <1 x i1> %vcond, <1 x i32> poison)
                                                           %maskedloadstore = bitcast <1 x i32> %v0 to i32
                                                           call void @llvm.masked.store.v1i32.p0
                                                                                  (<1 x i32> %v0, ptr %p, i32 4, <1 x i1> %vcond)
                                                           %cond.not = xor i1 %cond, true
                                                           %vcond.not = bitcast i1 %cond.not to <1 x i>
                                                           call void @llvm.masked.store.v1i32.p0
                                                                      (<1 x i32> <i32 1>, ptr %q, i32 4, <1x i1> %vcond.not)
                                                    
                                                

    Defined at line 1740 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • GEPNoWrapFlags mapFromLLVMGEPNoWrapFlags (LLVMGEPNoWrapFlags GEPFlags)

    -- GEP wrap flag conversions

    Defined at line 1743 of file llvm/lib/IR/Core.cpp

  • const Init * ForeachHelper (const Init * LHS, const Init * MHS, const Init * RHS, const RecTy * Type, const Record * CurRec)

    Applies RHS to all elements of MHS, using LHS as a temp variable.

    Defined at line 1743 of file llvm/lib/TableGen/Record.cpp

  • unsigned int LLVMDIVariableGetLine (LLVMMetadataRef Var)

    Get the source line where this

    is declared.

    Parameters

    Var The DIVariable.

    Defined at line 1744 of file llvm/lib/IR/DebugInfo.cpp

  • bool isIndirectBrTarget (BasicBlock * BB)

    Defined at line 1744 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • bool isOrdered (const Instruction * I)

    Return true if the instruction has ordering constraints.

    Note specifically that this only considers stores and loads

    because others are still considered ModRef by getModRefInfo.

    Defined at line 1745 of file llvm/lib/Analysis/MemorySSA.cpp

  • basic_string formatSegMapDescriptorFlag (uint32_t IndentLevel, OMFSegDescFlags Flags)

    Defined at line 1745 of file llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp

  • template <typename PassManagerT, typename CallbacksT>
    bool callbacksAcceptPassName (StringRef Name, CallbacksT & Callbacks)

    Tests whether registered callbacks will accept a given pass name.

    When parsing a pipeline text, the type of the outermost pipeline may be

    omitted, in which case the type is automatically determined from the first

    pass name in the text. This may be a name that is handled through one of the

    callbacks. We check this through the oridinary parsing callbacks by setting

    up a dummy PassManager in order to not force the client to also handle this

    type of query.

    Defined at line 1746 of file llvm/lib/Passes/PassBuilder.cpp

  • bool canUseSizedAtomicCall (unsigned int Size, Align Alignment, const DataLayout & DL)

    In order to use one of the sized library calls such as

    __atomic_fetch_add_4, the alignment must be sufficient, the size

    must be one of the potentially-specialized sizes, and the value

    type must actually exist in C on the target (otherwise, the

    function wouldn't actually be defined.)

    Defined at line 1746 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • bool hasChangeableCC (Function * F, int & ChangeableCCCache)

    Defined at line 1747 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • SelectHandSpeculativity isSafeLoadOfSelectToSpeculate (LoadInst & LI, SelectInst & SI, bool PreserveCFG)

    Defined at line 1747 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • LLVMMetadataRef LLVMTemporaryMDNode (LLVMContextRef Ctx, LLVMMetadataRef * Data, size_t NumElements)

    Create a new temporary

    Suitable for use in constructing cyclic

    structures. A temporary

    is not uniqued, may be RAUW'd,

    and must be manually deleted with

    Parameters

    Ctx The context in which to construct the temporary node.
    Data The metadata elements.
    NumElements Number of metadata elements.

    Defined at line 1748 of file llvm/lib/IR/DebugInfo.cpp

  • Value * simplifyOperationIntoSelectOperand (Instruction & I, SelectInst * SI, bool IsTrueArm)

    Defined at line 1748 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • Value * simplifyOrOfICmpsWithAdd (ICmpInst * Op0, ICmpInst * Op1, const InstrInfoQuery & IIQ)

    Defined at line 1749 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • uint32_t ARMCountOfInstructionBytes (ArrayRef Insns, bool * HasCustom)

    Defined at line 1749 of file llvm/lib/MC/MCWin64EH.cpp

  • bool longSimCandCompare (std::vector<IRInstructionData *> & InstrList, bool Structure, unsigned int Length, unsigned int StartIdxOne, unsigned int StartIdxTwo)

    A helper function that accepts an instruction list from a module made up of

    two blocks of two legal instructions and terminator, and checks them for

    instruction similarity.

    Defined at line 1751 of file llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp

  • Value * foldIntrinsicUsingDistributiveLaws (IntrinsicInst * II, InstCombiner::BuilderTy & Builder)

    Attempts to factorise a common term

    in an instruction that has the form "(A op' B) op (C op' D)

    where op is an intrinsic and op' is a binop

    Defined at line 1751 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • bool isArray (AllocaInst * AI)

    Determine whether this alloca is either a VLA or an array.

    Defined at line 1752 of file llvm/lib/Transforms/Utils/Local.cpp

  • void LLVMDisposeTemporaryMDNode (LLVMMetadataRef TempNode)

    Deallocate a temporary node.

    Calls

    before deleting, so any remaining

    references will be reset.

    Parameters

    TempNode The temporary metadata node.

    Defined at line 1754 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMGEPNoWrapFlags mapToLLVMGEPNoWrapFlags (GEPNoWrapFlags GEPFlags)

    Defined at line 1755 of file llvm/lib/IR/Core.cpp

  • void parseInputFilenamesFile (MemoryBuffer * Buffer, WeightedFileVector & WFV)

    Defined at line 1755 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • bool isColdCallSite (CallBase & CB, BlockFrequencyInfo & CallerBFI)

    Return true if the block containing the call site has a BlockFrequency of

    less than ColdCCRelFreq% of the entry block.

    Defined at line 1757 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • template <typename CallbacksT>
    bool isModulePassName (StringRef Name, CallbacksT & Callbacks)

    Defined at line 1757 of file llvm/lib/Passes/PassBuilder.cpp

  • bool isStructure (AllocaInst * AI)

    Determine whether this alloca is a structure.

    Defined at line 1758 of file llvm/lib/Transforms/Utils/Local.cpp

  • void LLVMMetadataReplaceAllUsesWith (LLVMMetadataRef TempTargetMetadata, LLVMMetadataRef Replacement)

    Replace all uses of temporary metadata.

    Parameters

    TempTargetMetadata The temporary metadata node.
    Replacement The replacement metadata node.

    Defined at line 1758 of file llvm/lib/IR/DebugInfo.cpp

  • ConstantRange computeShlNSWWithNegLHS (const APInt & LHSMin, const APInt & LHSMax, unsigned int RHSMin, unsigned int RHSMax)

    Defined at line 1759 of file llvm/lib/IR/ConstantRange.cpp

  • void deleteDeadBlocksFromLoop (Loop & L, SmallVectorImpl<BasicBlock *> & ExitBlocks, DominatorTree & DT, LoopInfo & LI, MemorySSAUpdater * MSSAU, ScalarEvolution * SE, LPMUpdater & LoopUpdater)

    Defined at line 1761 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • GlobalValue * createGlobalFwdRef (Module * M, PointerType * PTy)

    ===----------------------------------------------------------------------===//

    GlobalValue Reference/Resolution Routines.

    ===----------------------------------------------------------------------===//

    Defined at line 1762 of file llvm/lib/AsmParser/LLParser.cpp

  • bool canMarkAsVisited (const User * Usr)

    Defined at line 1764 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateTempGlobalVariableFwdDecl (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, const char * Linkage, size_t LnkLen, LLVMMetadataRef File, unsigned int LineNo, LLVMMetadataRef Ty, LLVMBool LocalToUnit, LLVMMetadataRef Decl, uint32_t AlignInBits)

    Create a new descriptor for the specified global variable that is temporary

    and meant to be RAUWed.

    Parameters

    Scope Variable scope.
    Name Name of the variable.
    NameLen The length of the C string passed to
    Linkage Mangled name of the variable.
    LnkLen The length of the C string passed to
    File File where this variable is defined.
    LineNo Line number.
    Ty Variable Type.
    LocalToUnit Boolean flag indicate whether this variable is externally visible or not.
    Decl Reference to the corresponding declaration.
    AlignInBits Variable alignment(or 0 if no alignment attr was specified)

    Defined at line 1765 of file llvm/lib/IR/DebugInfo.cpp

  • const Init * FilterHelper (const Init * LHS, const Init * MHS, const Init * RHS, const RecTy * Type, const Record * CurRec)

    Evaluates RHS for all elements of MHS, using LHS as a temp variable.

    Creates a new list with the elements that evaluated to true.

    Defined at line 1765 of file llvm/lib/TableGen/Record.cpp

  • void moveBBContents (BasicBlock * FromBB, Instruction * InsertBefore)

    Move all instructions except the terminator from FromBB right before

    InsertBefore

    Defined at line 1767 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • StringRef getCOFFSectionNameForUniqueGlobal (SectionKind Kind)

    Defined at line 1767 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • void fixupOrderingIndices (MutableArrayRef<unsigned int> Order)

    Order may have elements assigned special value (size) which is out of

    bounds. Such indices only appear on places which correspond to undef values

    (see canReuseExtract for details) and used in order to avoid undef values

    have effect on operands ordering.

    The first loop below simply finds all unused indices and then the next loop

    nest assigns these indices for undef values positions.

    As an example below Order has two undef positions and they have assigned

    values 3 and 7 respectively:

    before: 6 9 5 4 9 2 1 0

    after: 6 3 5 4 7 2 1 0

    Defined at line 1768 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • pair FindFirstMatchingPrefix (const FileCheckRequest & Req, PrefixMatcher & Matcher, StringRef & Buffer, unsigned int & LineNumber, Check::FileCheckType & CheckTy)

    Searches the buffer for the first prefix in the prefix regular expression.

    This searches the buffer using the provided regular expression, however it

    enforces constraints beyond that:

    1) The found prefix must not be a suffix of something that looks like

    a valid prefix.

    2) The found prefix must be followed by a valid check type suffix using

    above.

    If this routine returns a valid prefix, it will also shrink

    to

    start at the beginning of the returned prefix, increment

    for

    each new line consumed from

    and set

    to the type of

    check found by examining the suffix.

    If no valid prefix is found, the state of Buffer, LineNumber, and CheckTy

    is unspecified.

    Defined at line 1768 of file llvm/lib/FileCheck/FileCheck.cpp

  • pair inferDomainOfAffine (OverflowSafeSignedAPInt A, OverflowSafeSignedAPInt B, OverflowSafeSignedAPInt UB)

    Given an affine expression of the form A*k + B, where k is an arbitrary

    integer, infer the possible range of k based on the known range of the

    affine expression. If we know A*k + B is non-negative, i.e.,

    A*k + B >= 0

    we can derive the following inequalities for k when A is positive:

    k >= -B / A

    Since k is an integer, it means k is greater than or equal to the

    ceil(-B / A).

    If the upper bound of the affine expression

    is passed, the following

    inequality can be derived as well:

    A*k + B

    <

    = UB

    which leads to:

    k

    <

    = (UB - B) / A

    Again, as k is an integer, it means k is less than or equal to the

    floor((UB - B) / A).

    The similar logic applies when A is negative, but the inequalities sign flip

    while working with them.

    Preconditions:

    is non-zero, and we know A*k + B is non-negative.

    Defined at line 1769 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • bool isValidCandidateForColdCC (Function & F, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, const int & AllCallsCold)

    This function checks if the input function F is cold at all call sites. It

    also looks each call site's containing function, returning false if the

    caller function contains other non cold calls. The input vector AllCallsCold

    contains a list of functions that only have call sites in cold blocks.

    Defined at line 1770 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void eliminateSwiftError (Function & F, coro::Shape & Shape)

    Eliminate all problematic uses of swifterror arguments and allocas

    from the function. We'll fix them up later when splitting the function.

    Defined at line 1770 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • Value * foldOperationIntoSelectOperand (Instruction & I, SelectInst * SI, Value * NewOp, InstCombiner & IC)

    Defined at line 1773 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void swapBBContents (BasicBlock * BB1, BasicBlock * BB2)

    Swap instructions between

    and

    but keep terminators intact.

    Defined at line 1775 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • LLVMDbgRecordRef LLVMDIBuilderInsertDeclareRecordBefore (LLVMDIBuilderRef Builder, LLVMValueRef Storage, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMValueRef Instr)

    Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).

    See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

    The debug format can be switched later after inserting the records using

    LLVMSetIsNewDbgInfoFormat, if needed for legacy or transitionary reasons.

    Insert a Declare DbgRecord before the given instruction.

    Parameters

    Builder The DIBuilder.
    Storage The storage of the variable to declare.
    VarInfo The variable's debug info descriptor.
    Expr A complex location expression for the variable.
    DebugLoc Debug info location.
    Instr Instruction acting as a location for the new record.

    Defined at line 1776 of file llvm/lib/IR/DebugInfo.cpp

  • Instruction * foldLogicCastConstant (BinaryOperator & Logic, CastInst * Cast, InstCombinerImpl & IC)

    Fold {and,or,xor} (cast X), C.

    Defined at line 1776 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • int merge_main (StringRef ProgName)

    Defined at line 1776 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • ConstantRange computeShlNSW (const ConstantRange & LHS, const ConstantRange & RHS)

    Defined at line 1778 of file llvm/lib/IR/ConstantRange.cpp

  • void replaceArgumentUses (OutlinableRegion & Region, DenseMap<Value *, BasicBlock *> & OutputBBs, const DenseMap<Value *, Value *> & OutputMappings, bool FirstFunction)

    Within an extracted function, replace the argument uses of the extracted

    region with the arguments of the function for an OutlinableGroup.

    Parameters

    Region [in] - The region of extracted code to be changed.
    OutputBBs [in,out] - The BasicBlock for the output stores for this region.
    FirstFunction [in] - A flag to indicate whether we are using this function to define the overall outlined function for all the regions, or if we are operating on one of the following regions.

    Defined at line 1780 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • Expected<SymbolicFile::basic_symbol_iterator_range> getDynamicSyms (SymbolicFile & Obj)

    Defined at line 1782 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • Value * buildMultiplyTree (IRBuilderBase & Builder, SmallVectorImpl<Value *> & Ops)

    Build a tree of multiplies, computing the product of Ops.

    Defined at line 1784 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • template <typename CallbacksT>
    bool isCGSCCPassName (StringRef Name, CallbacksT & Callbacks)

    Defined at line 1785 of file llvm/lib/Passes/PassBuilder.cpp

  • Align computeAlignmentAfterScalarization (Align VectorAlignment, Type * ScalarType, Value * Idx, const DataLayout & DL)

    The memory operation on a vector of

    had alignment of

    Compute the maximal, but conservatively correct,

    alignment that will be valid for the memory operation on a single scalar

    element of the same type with index

    Defined at line 1786 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • bool isUsedByLifetimeMarker (Value * V)

    Check whether this Value is used by a lifetime intrinsic.

    Defined at line 1787 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool optimizeVectorInductionWidthForTCAndVFUF (VPlan & Plan, ElementCount BestVF, unsigned int BestUF)

    Optimize the width of vector induction variables in

    based on a known

    constant Trip Count,

    and

    Defined at line 1787 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool getSymbolNamesFromObject (SymbolicFile & Obj, int & SymbolList)

    Returns false if there is error found or true otherwise.

    Defined at line 1791 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void changeCallSitesToColdCC (Function * F)

    Defined at line 1792 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • SmallBitVector getAltInstrMask (ArrayRef VL, Type * ScalarTy, unsigned int Opcode0, unsigned int Opcode1)

    Defined at line 1794 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • LLVMDbgRecordRef LLVMDIBuilderInsertDeclareRecordAtEnd (LLVMDIBuilderRef Builder, LLVMValueRef Storage, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMBasicBlockRef Block)

    Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).

    See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

    The debug format can be switched later after inserting the records using

    LLVMSetIsNewDbgInfoFormat, if needed for legacy or transitionary reasons.

    Insert a Declare DbgRecord at the end of the given basic block. If the basic

    block has a terminator instruction, the record is inserted before that

    terminator instruction.

    Parameters

    Builder The DIBuilder.
    Storage The storage of the variable to declare.
    VarInfo The variable's debug info descriptor.
    Expr A complex location expression for the variable.
    DebugLoc Debug info location.
    Block Basic block acting as a location for the new record.

    Defined at line 1794 of file llvm/lib/IR/DebugInfo.cpp

  • void updateSuccessor (BranchInst * BI, BasicBlock * OldBB, BasicBlock * NewBB, std::vector<DominatorTree::UpdateType> & DTUpdates, bool MustUpdateOnce)

    Update BI to jump to NewBB instead of OldBB. Records updates to the

    dominator tree in DTUpdates. If

    is true, assert that

    is exactly once in BI's successor list.

    Defined at line 1794 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • bool hasLifetimeMarkers (AllocaInst * AI)

    Check whether the given alloca already has

    lifetime.start or lifetime.end intrinsics.

    Defined at line 1796 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • Value * simplifyOrOfICmps (ICmpInst * Op0, ICmpInst * Op1, const SimplifyQuery & Q)

    Defined at line 1796 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * simplifyX86extrq (IntrinsicInst & II, Value * Op0, ConstantInt * CILength, ConstantInt * CIIndex, InstCombiner::BuilderTy & Builder)

    Attempt to simplify SSE4A EXTRQ/EXTRQI instructions using constant folding

    or conversion to a shuffle vector.

    Defined at line 1796 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • void computeUberWeights (MutableArrayRef<UberRegSet> UberSets, CodeGenRegBank & RegBank)

    Recompute each UberSet weight after changing unit weights.

    Defined at line 1798 of file llvm/utils/TableGen/Common/CodeGenRegisters.cpp

  • TypeSetByHwMode getTypeForRegClassByHwMode (const CodeGenTarget & T, const Record * R, ArrayRef<SMLoc> Loc)

    RegClassByHwMode acts like ValueTypeByHwMode, taking the type of the

    register class from the active mode.

    Defined at line 1800 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • unsigned int computeNumSignBitsFromRangeMetadata (const GAnyLoad * Ld, unsigned int TyBits)

    Compute the known number of sign bits with attached range metadata in the

    memory operand. If this is an extending load, accounts for the behavior of

    the high bits.

    Defined at line 1801 of file llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp

  • bool isDispSafeForFrameIndexOrRegBase (int64_t Val)

    Defined at line 1802 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • bool hasOnlyColdCalls (Function & F, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, int & ChangeableCCCache)

    This function iterates over all the call instructions in the input Function

    and checks that all call sites are in cold blocks and are allowed to use the

    coldcc calling convention.

    Defined at line 1802 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • ArrayRef<RTLIB::Libcall> GetRMWLibcall (BinOp Op)

    Defined at line 1802 of file llvm/lib/CodeGen/AtomicExpandPass.cpp

  • bool foldUnusualPatterns (Function & F, DominatorTree & DT, TargetTransformInfo & TTI, TargetLibraryInfo & TLI, AliasAnalysis & AA, AssumptionCache & AC, bool & MadeCFGChange)

    This is the entry point for folds that could be implemented in regular

    InstCombine, but they are separated because they are not expected to

    occur frequently and/or have more than a constant-length pattern match.

    Defined at line 1803 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • bool shiftAmountKnownInRange (Register ShiftAmount, const MachineRegisterInfo & MRI)

    Shifts return poison if shiftwidth is larger than the bitwidth.

    Defined at line 1805 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void sinkLifetimeStartMarkers (Function & F, coro::Shape & Shape, SuspendCrossingInfo & Checker, const DominatorTree & DT)

    For each local variable that all of its user are only used inside one of

    suspended region, we sink their lifetime.start markers to the place where

    after the suspend block. Doing so minimizes the lifetime of each variable,

    hence minimizing the amount of data we end up putting on the frame.

    Defined at line 1805 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • bool replaceSubOverflowUses (IntrinsicInst * II, Value * A, Value * B, SmallVectorImpl<Instruction *> & ToRemove)

    Defined at line 1806 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • void checkARMInstructions (MCStreamer & Streamer, ArrayRef Insns, const MCSymbol * Begin, const MCSymbol * End, StringRef Name, StringRef Type)

    Defined at line 1808 of file llvm/lib/MC/MCWin64EH.cpp

  • int replicateMask (ArrayRef Val, unsigned int VF)

    Replicates the given

    times.

    Defined at line 1809 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isAMCompletelyFolded (const TargetTransformInfo & TTI, KindType Kind, MemAccessTy AccessTy, GlobalValue * BaseGV, Immediate BaseOffset, bool HasBaseReg, int64_t Scale, Instruction * Fixup)

    Defined at line 1809 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void addConstantComments (const MachineInstr * MI, MCStreamer & OutStreamer)

    Defined at line 1809 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • LLVMDbgRecordRef LLVMDIBuilderInsertDbgValueRecordBefore (LLVMDIBuilderRef Builder, LLVMValueRef Val, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMValueRef Instr)

    Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).

    See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

    The debug format can be switched later after inserting the records using

    LLVMSetIsNewDbgInfoFormat, if needed for legacy or transitionary reasons.

    Insert a new debug record before the given instruction.

    Parameters

    Builder The DIBuilder.
    Val The value of the variable.
    VarInfo The variable's debug info descriptor.
    Expr A complex location expression for the variable.
    DebugLoc Debug info location.
    Instr Instruction acting as a location for the new record.

    Defined at line 1810 of file llvm/lib/IR/DebugInfo.cpp

  • void speculateSelectInstLoads (SelectInst & SI, LoadInst & LI, IRBuilderTy & IRB)

    Defined at line 1810 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • template <typename CallbacksT>
    bool isFunctionPassName (StringRef Name, CallbacksT & Callbacks)

    Defined at line 1812 of file llvm/lib/Passes/PassBuilder.cpp

  • void DumpInitTermPointerSection (MachOObjectFile * O, const SectionRef & Section, const char * sect, uint32_t sect_size, uint64_t sect_addr, SymbolAddressMap * AddrMap, bool verbose)

    Defined at line 1812 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool allocaWouldBeStaticInEntry (const AllocaInst * AI)

    Return the result of AI->isStaticAlloca() if AI were moved to the entry

    block. Allocas used in inalloca calls and allocas of dynamic array size

    cannot be static.

    Defined at line 1816 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void moveLCSSAPhis (BasicBlock * InnerExit, BasicBlock * InnerHeader, BasicBlock * InnerLatch, BasicBlock * OuterHeader, BasicBlock * OuterLatch, BasicBlock * OuterExit, Loop * InnerLoop, LoopInfo * LI)

    Move Lcssa PHIs to the right place.

    Defined at line 1817 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • void inversePermutation (ArrayRef Indices, SmallVectorImpl<int> & Mask)

    Defined at line 1819 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool crashingBBWithoutEffect (const BasicBlock & BB)

    Defined at line 1820 of file llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  • DebugLoc inlineDebugLoc (DebugLoc OrigDL, DILocation * InlinedAt, LLVMContext & Ctx, DenseMap<const MDNode *, MDNode *> & IANodes)

    Returns a DebugLoc for a new DILocation which is a clone of

    inlined at

    is an inlined-at cache.

    Defined at line 1822 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void overlapInstrProfile (const std::string & BaseFilename, const std::string & TestFilename, const OverlapFuncFilters & FuncFilter, raw_fd_ostream & OS, bool IsCS)

    Computer the overlap b/w profile BaseFilename and profile TestFilename.

    Defined at line 1822 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • Value * simplifyAndOrOfFCmpsWithConstants (FCmpInst * Cmp0, FCmpInst * Cmp1, bool IsAnd)

    Test if a pair of compares with a shared operand and 2 constants has an

    empty set intersection, full set union, or if one compare is a superset of

    the other.

    Defined at line 1822 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • const char * getElfMipsOptionsOdkType (unsigned int Odk)

    Defined at line 1823 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool hasZeroSizedFragment (DbgVariableRecord & DbgValue)

    Defined at line 1827 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • uint32_t getMaxNumAnnotations (InstrProfValueKind ValueProfKind)

    Defined at line 1827 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • MachineBasicBlock * findFalseBlock (MachineBasicBlock * BB, MachineBasicBlock * TrueBB)

    findFalseBlock - BB has a fallthrough. Find its 'false' successor given

    its 'true' successor.

    Defined at line 1828 of file llvm/lib/CodeGen/BranchFolding.cpp

  • LLVMDbgRecordRef LLVMDIBuilderInsertDbgValueRecordAtEnd (LLVMDIBuilderRef Builder, LLVMValueRef Val, LLVMMetadataRef VarInfo, LLVMMetadataRef Expr, LLVMMetadataRef DebugLoc, LLVMBasicBlockRef Block)

    Only use in "new debug format" (LLVMIsNewDbgInfoFormat() is true).

    See https://llvm.org/docs/RemoveDIsDebugInfo.html#c-api-changes

    The debug format can be switched later after inserting the records using

    LLVMSetIsNewDbgInfoFormat, if needed for legacy or transitionary reasons.

    Insert a new debug record at the end of the given basic block. If the

    basic block has a terminator instruction, the record is inserted before

    that terminator instruction.

    Parameters

    Builder The DIBuilder.
    Val The value of the variable.
    VarInfo The variable's debug info descriptor.
    Expr A complex location expression for the variable.
    DebugLoc Debug info location.
    Block Basic block acting as a location for the new record.

    Defined at line 1828 of file llvm/lib/IR/DebugInfo.cpp

  • void reorderScalars (SmallVectorImpl<Value *> & Scalars, ArrayRef Mask)

    Reorders the list of scalars in accordance with the given

    Defined at line 1829 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • Instruction * tryToReuseConstantFromSelectInComparison (SelectInst & Sel, ICmpInst & Cmp, InstCombinerImpl & IC)

    If we have

    %cmp = icmp [canonical predicate] i32 %x, C0

    %r = select i1 %cmp, i32 %y, i32 C1

    Where C0 != C1 and %x may be different from %y, see if the constant that we

    will have if we flip the strictness of the predicate (i.e. without changing

    the result) is identical to the C1 in select. If it matches we can change

    original comparison to one with swapped predicate, reuse the constant,

    and swap the hands of select.

    Defined at line 1831 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool isARMTerminator (const WinEH::Instruction & inst)

    Defined at line 1833 of file llvm/lib/MC/MCWin64EH.cpp

  • bool isSafeCheapLoadStore (const Instruction * I, const TargetTransformInfo & TTI)

    Defined at line 1833 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void fixupLineNumbers (Function * Fn, ilist_iterator FI, Instruction * TheCall, bool CalleeHasDebugInfo)

    Update inlined instructions' line numbers to

    to encode location where these instructions are inlined.

    Defined at line 1833 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool hasMustTailCallers (Function * F)

    Defined at line 1835 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • template <typename CallbacksT>
    bool isMachineFunctionPassName (StringRef Name, CallbacksT & Callbacks)

    Defined at line 1835 of file llvm/lib/Passes/PassBuilder.cpp

  • template <class Container>
    void addRegAndItsAliases (Register Reg, const TargetRegisterInfo * TRI, Container & Set)

    Defined at line 1837 of file llvm/lib/CodeGen/BranchFolding.cpp

  • bool tryToSimplifyOverflowMath (IntrinsicInst * II, ConstraintInfo & Info, SmallVectorImpl<Instruction *> & ToRemove)

    Defined at line 1838 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • Value * simplifyInstructionWithPHI (Instruction & I, PHINode * PN, Value * InValue, BasicBlock * InBB, const DataLayout & DL, SimplifyQuery SQ)

    Defined at line 1839 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • bool sinkCmpExpression (CmpInst * Cmp, const TargetLowering & TLI, const DataLayout & DL)

    Sink the given CmpInst into user blocks to reduce the number of virtual

    registers that must be created and coalesced. This is a clear win except on

    targets with multiple condition code registers (PowerPC), where it might

    lose; some adjustment may be wanted there.

    Return true if any changes are made.

    Defined at line 1843 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool hasInvokeCallers (Function * F)

    Defined at line 1844 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool includesPoison (UndefPoisonKind Kind)

    Defined at line 1845 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateAutoVariable (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNo, LLVMMetadataRef Ty, LLVMBool AlwaysPreserve,  Flags, uint32_t AlignInBits)

    Create a new descriptor for a local auto variable.

    Parameters

    Builder The DIBuilder.
    Scope The local scope the variable is declared in.
    Name Variable name.
    NameLen Length of variable name.
    File File where this variable is defined.
    LineNo Line number.
    Ty Metadata describing the type of the variable.
    AlwaysPreserve If true, this descriptor will survive optimizations.
    Flags Flags.
    AlignInBits Variable alignment.

    Defined at line 1845 of file llvm/lib/IR/DebugInfo.cpp

  • Function * replaceAliasWithAliasee (Module * SrcModule, GlobalAlias * GA)

    Make alias a clone of its aliasee.

    Defined at line 1845 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void ARMEmitUnwindCode (MCStreamer & streamer, const WinEH::Instruction & inst)

    Unwind opcode encodings and restrictions are documented at

    https://docs.microsoft.com/en-us/cpp/build/arm-exception-handling

    Defined at line 1846 of file llvm/lib/MC/MCWin64EH.cpp

  • bool normalizeWeight (CodeGenRegister * Reg, int & UberSets, int & RegSets, BitVector & NormalRegs, int & NormalUnits, CodeGenRegBank & RegBank)

    normalizeWeight is a computeRegUnitWeights helper that adjusts the weight of

    a register and its subregisters so that they have the same weight as their

    UberSet. Self-recursion processes the subregister tree in postorder so

    subregisters are normalized first.

    Side effects:

    - creates new adopted register units

    - causes superregisters to inherit adopted units

    - increases the weight of "singular" units

    - induces recomputation of UberWeights.

    Defined at line 1847 of file llvm/utils/TableGen/Common/CodeGenRegisters.cpp

  • bool includesUndef (UndefPoisonKind Kind)

    Defined at line 1849 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • template <typename T>
    void rewriteMemOpOfSelect (SelectInst & SI, T & I, SelectHandSpeculativity Spec, DomTreeUpdater & DTU)

    Defined at line 1849 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool runImpl (Function & F, AssumptionCache & AC, TargetTransformInfo & TTI, TargetLibraryInfo & TLI, DominatorTree & DT, AliasAnalysis & AA, bool & MadeCFGChange)

    This is the entry point for all transforms. Pass manager differences are

    handled in the callers of this function.

    Defined at line 1850 of file llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp

  • uint64_t getRawAttributeMask (AttrKind Val)

    ===----------------------------------------------------------------------===//

    Functions for parsing blocks from the bitcode file

    ===----------------------------------------------------------------------===//

    Defined at line 1850 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void RemovePreallocated (Function * F)

    Defined at line 1851 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool canCreateUndefOrPoison (Register Reg, const MachineRegisterInfo & MRI, bool ConsiderFlagsAndMetadata, UndefPoisonKind Kind)

    Defined at line 1853 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • int findHoistingInsertPosAndDeps (MachineBasicBlock * MBB, const TargetInstrInfo * TII, const TargetRegisterInfo * TRI, int & Uses, int & Defs)

    findHoistingInsertPosAndDeps - Find the location to move common instructions

    in successors to. The location is usually just before the terminator,

    however if the terminator is a conditional branch and its previous

    instruction is the flag setting instruction, the previous instruction is

    the preferred location. This function also gathers uses and defs of the

    instructions from the insertion point to the end of the block. The data is

    used by HoistCommonCodeInSuccs to ensure safety.

    Defined at line 1854 of file llvm/lib/CodeGen/BranchFolding.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateParameterVariable (LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char * Name, size_t NameLen, unsigned int ArgNo, LLVMMetadataRef File, unsigned int LineNo, LLVMMetadataRef Ty, LLVMBool AlwaysPreserve,  Flags)

    Create a new descriptor for a function parameter variable.

    Parameters

    Builder The DIBuilder.
    Scope The local scope the variable is declared in.
    Name Variable name.
    NameLen Length of variable name.
    ArgNo Unique argument number for this variable; starts at 1.
    File File where this variable is defined.
    LineNo Line number.
    Ty Metadata describing the type of the variable.
    AlwaysPreserve If true, this descriptor will survive optimizations.
    Flags Flags.

    Defined at line 1855 of file llvm/lib/IR/DebugInfo.cpp

  • SmallPtrSet recomputeLoopBlockSet (Loop & L, LoopInfo & LI)

    Recompute the set of blocks in a loop after unswitching.

    This walks from the original headers predecessors to rebuild the loop. We

    take advantage of the fact that new blocks can't have been added, and so we

    filter by the original loop's blocks. This also handles potentially

    unreachable code that we don't want to explore but might be found examining

    the predecessors of the header.

    If the original loop is no longer a loop, this will return an empty set. If

    it remains a loop, all the blocks within it will be added to the set

    (including those blocks in inner loops).

    Defined at line 1855 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool isConditionTrueViaVFAndUF (VPValue * Cond, VPlan & Plan, ElementCount BestVF, unsigned int BestUF, PredicatedScalarEvolution & PSE)

    Return true if

    is known to be true for given

    and

    Defined at line 1856 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool canEvaluateShuffled (Value * V, ArrayRef Mask, unsigned int Depth)

    Return true if we can evaluate the specified expression tree if the vector

    elements were shuffled in a different order.

    Defined at line 1856 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • template <typename CallbacksT>
    bool isLoopNestPassName (StringRef Name, CallbacksT & Callbacks, bool & UseMemorySSA)

    Defined at line 1858 of file llvm/lib/Passes/PassBuilder.cpp

  • Value * simplifyAndOrOfFCmps (const SimplifyQuery & Q, FCmpInst * LHS, FCmpInst * RHS, bool IsAnd)

    Defined at line 1859 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void internalizeGVsAfterImport (Module & M)

    Internalize values that we marked with specific attribute

    in processGlobalForThinLTO.

    Defined at line 1861 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • void writeMDTuple (raw_ostream & Out, const MDTuple * Node, AsmWriterContext & WriterCtx)

    Defined at line 1862 of file llvm/lib/IR/AsmWriter.cpp

  • void appendTypeSuffix (Value * Op, StringRef & Name, SmallString<20> & NameBuffer)

    Append a suffix to the function name according to the type of 'Op'.

    Defined at line 1865 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool eliminateConstraints (Function & F, DominatorTree & DT, LoopInfo & LI, ScalarEvolution & SE, OptimizationRemarkEmitter & ORE, TargetLibraryInfo & TLI)

    Defined at line 1866 of file llvm/lib/Transforms/Scalar/ConstraintElimination.cpp

  • Value * upgradeX86PSLLDQIntrinsics (IRBuilder<> & Builder, Value * Op, unsigned int Shift)

    Handles upgrading SSE2/AVX2/AVX512BW PSLLDQ intrinsics by converting them

    to byte shuffles.

    Defined at line 1868 of file llvm/lib/IR/AutoUpgrade.cpp

  • ValueLatticeElement getValueFromMetadata (const Instruction * I)

    Defined at line 1869 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp

  • bool InstrBreaksNonConvergent (Instruction & I, const SCCNodeSet & SCCNodes)

    Helper for non-Convergent inference predicate InstrBreaksAttribute.

    Defined at line 1870 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool isAMCompletelyFolded (const TargetTransformInfo & TTI, Immediate MinOffset, Immediate MaxOffset, KindType Kind, MemAccessTy AccessTy, GlobalValue * BaseGV, Immediate BaseOffset, bool HasBaseReg, int64_t Scale)

    Defined at line 1873 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • template <typename CallbacksT>
    bool isLoopPassName (StringRef Name, CallbacksT & Callbacks, bool & UseMemorySSA)

    Defined at line 1876 of file llvm/lib/Passes/PassBuilder.cpp

  • void DumpRawSectionContents (MachOObjectFile * O, const char * sect, uint32_t size, uint64_t addr)

    Defined at line 1876 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool doesNotNeedToBeScheduled (Value * V)

    Checks if the specified value does not require scheduling. It does not

    require scheduling if all operands and all users do not need to be scheduled

    in the current basic block.

    Defined at line 1878 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • Value * emitUnaryFloatFnCallHelper (Value * Op, LibFunc TheLibFunc, StringRef Name, IRBuilderBase & B, const AttributeList & Attrs, const TargetLibraryInfo * TLI)

    Defined at line 1879 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • bool InstrBreaksNonThrowing (Instruction & I, const SCCNodeSet & SCCNodes)

    Helper for NoUnwind inference predicate InstrBreaksAttribute.

    Defined at line 1880 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool isAMCompletelyFolded (const TargetTransformInfo & TTI, const LSRUse & LU, const Formula & F)

    Check if the addressing mode defined by

    is completely

    folded in

    at isel time.

    This includes address-mode folding and special icmp tricks.

    This function returns true if

    can accommodate what

    defines and up to 1 base + 1 scaled + offset.

    In other words, if

    has several base registers, this function may

    still return true. Therefore, users still need to account for

    additional base registers and/or unfolded offsets to derive an

    accurate cost model.

    Defined at line 1945 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • InstructionCost getScalingFactorCost (const TargetTransformInfo & TTI, const LSRUse & LU, const Formula & F, const Loop & L)

    Get the cost of the scaling factor used in F for LU.

    Defined at line 1962 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • LLVMMetadataRef LLVMDIBuilderGetOrCreateArray (LLVMDIBuilderRef Builder, LLVMMetadataRef * Data, size_t NumElements)

    Create an array of DI Nodes.

    Parameters

    Builder The DIBuilder.
    Data The DI Node elements.
    NumElements Number of DI Node elements.

    Defined at line 1870 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMGetSubprogram (LLVMValueRef Func)

    Get the metadata of the subprogram attached to a function.

    Defined at line 1877 of file llvm/lib/IR/DebugInfo.cpp

  • void LLVMSetSubprogram (LLVMValueRef Func, LLVMMetadataRef SP)

    Set the subprogram attached to a function.

    Defined at line 1881 of file llvm/lib/IR/DebugInfo.cpp

  • unsigned int LLVMDISubprogramGetLine (LLVMMetadataRef Subprogram)

    Get the line associated with a given subprogram.

    Parameters

    Subprogram The subprogram object.

    Defined at line 1885 of file llvm/lib/IR/DebugInfo.cpp

  • void LLVMDISubprogramReplaceType (LLVMMetadataRef Subprogram, LLVMMetadataRef SubroutineType)

    Replace the subprogram subroutine type.

    Parameters

    Subprogram The subprogram object.
    SubroutineType The new subroutine type.

    Defined at line 1889 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMInstructionGetDebugLoc (LLVMValueRef Inst)

    Get the debug location for the given instruction.

    Defined at line 1895 of file llvm/lib/IR/DebugInfo.cpp

  • void LLVMInstructionSetDebugLoc (LLVMValueRef Inst, LLVMMetadataRef Loc)

    Set the debug location for the given instruction.

    To clear the location metadata of the given instruction, pass NULL to

    Defined at line 1899 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMMetadataRef LLVMDIBuilderCreateLabel (LLVMDIBuilderRef Builder, LLVMMetadataRef Context, const char * Name, size_t NameLen, LLVMMetadataRef File, unsigned int LineNo, LLVMBool AlwaysPreserve)

    Create a new descriptor for a label

    Parameters

    Builder The DIBuilder.
    Scope The scope to create the label in.
    Name Variable name.
    NameLen Length of variable name.
    File The file to create the label in.
    LineNo Line Number.
    AlwaysPreserve Preserve the label regardless of optimization.

    Defined at line 1906 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMDbgRecordRef LLVMDIBuilderInsertLabelBefore (LLVMDIBuilderRef Builder, LLVMMetadataRef LabelInfo, LLVMMetadataRef Location, LLVMValueRef InsertBefore)

    Insert a new llvm.dbg.label intrinsic call

    Parameters

    Builder The DIBuilder.
    LabelInfo The Label's debug info descriptor
    Location The debug info location
    InsertBefore Location for the new intrinsic.

    Defined at line 1917 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMBool LLVMIsConstant (LLVMValueRef Val)

    Determine whether the specified value instance is constant.

    Defined at line 1261 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsUndef (LLVMValueRef Val)

    Determine whether a value instance is undefined.

    Defined at line 1271 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsPoison (LLVMValueRef Val)

    Determine whether a value instance is poisonous.

    Defined at line 1275 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAAddrSpaceCastInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAAllocaInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAArgument (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAAtomicCmpXchgInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAAtomicRMWInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsABasicBlock (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsABinaryOperator (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsABitCastInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsABlockAddress (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsABranchInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsACallBrInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsACallInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsACastInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsACatchPadInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsACatchReturnInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsACatchSwitchInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsACleanupPadInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsACleanupReturnInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsACmpInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstant (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantAggregateZero (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantArray (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantDataArray (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantDataSequential (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantDataVector (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantExpr (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantFP (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantInt (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantPointerNull (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantPtrAuth (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantStruct (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantTokenNone (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAConstantVector (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsADbgDeclareInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsADbgInfoIntrinsic (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsADbgLabelInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsADbgVariableIntrinsic (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAExtractElementInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAExtractValueInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAFCmpInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAFPExtInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAFPToSIInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAFPToUIInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAFPTruncInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAFenceInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAFreezeInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAFuncletPadInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAFunction (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAGetElementPtrInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAGlobalAlias (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAGlobalIFunc (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAGlobalObject (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAGlobalValue (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAGlobalVariable (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAICmpInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAIndirectBrInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAInlineAsm (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAInsertElementInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAInsertValueInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAInstruction (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAIntToPtrInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAIntrinsicInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAInvokeInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsALandingPadInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsALoadInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAMemCpyInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAMemIntrinsic (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAMemMoveInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAMemSetInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAPHINode (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAPoisonValue (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAPtrToIntInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAResumeInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAReturnInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsASExtInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsASIToFPInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsASelectInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAShuffleVectorInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAStoreInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsASwitchInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsATruncInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAUIToFPInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAUnaryInstruction (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAUnaryOperator (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAUndefValue (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAUnreachableInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAUser (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAVAArgInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAZExtInst (LLVMValueRef Val)

    Defined at line 1152 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAMDNode (LLVMValueRef Val)

    Defined at line 1154 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAValueAsMetadata (LLVMValueRef Val)

    Defined at line 1162 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsAMDString (LLVMValueRef Val)

    Defined at line 1169 of file llvm/lib/IR/Core.cpp

  • LLVMUseRef LLVMGetFirstUse (LLVMValueRef Val)

    Obtain the first use of a value.

    Uses are obtained in an iterator fashion. First, call this function

    to obtain a reference to the first use. Then, call LLVMGetNextUse()

    on that instance and all subsequently obtained instances until

    LLVMGetNextUse() returns NULL.

    Defined at line 1177 of file llvm/lib/IR/Core.cpp

  • LLVMUseRef LLVMGetNextUse (LLVMUseRef U)

    Obtain the next use of a value.

    This effectively advances the iterator. It returns NULL if you are on

    the final use and no more are available.

    Defined at line 1185 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetUser (LLVMUseRef U)

    Obtain the user value for a user.

    The returned value corresponds to a llvm::User type.

    Defined at line 1192 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetUsedValue (LLVMUseRef U)

    Obtain the value this use corresponds to.

    Defined at line 1196 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetOperand (LLVMValueRef Val, unsigned int Index)

    Obtain an operand at a specific index in a llvm::User value.

    Defined at line 1212 of file llvm/lib/IR/Core.cpp

  • LLVMUseRef LLVMGetOperandUse (LLVMValueRef Val, unsigned int Index)

    Obtain the use of an operand at a specific index in a llvm::User value.

    Defined at line 1226 of file llvm/lib/IR/Core.cpp

  • void LLVMSetOperand (LLVMValueRef User, unsigned int Index, LLVMValueRef Val)

    Set an operand at a specific index in a llvm::User value.

    Defined at line 1231 of file llvm/lib/IR/Core.cpp

  • int LLVMGetNumOperands (LLVMValueRef Val)

    Obtain the number of operands in a llvm::User value.

    Defined at line 1235 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNull (LLVMTypeRef Ty)

    Obtain a constant value referring to the null instance of a type.

    Defined at line 1245 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstAllOnes (LLVMTypeRef Ty)

    Obtain a constant value referring to the instance of a type

    consisting of all ones.

    This is only valid for integer types.

    Defined at line 1249 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetUndef (LLVMTypeRef Ty)

    Obtain a constant value referring to an undefined value of a type.

    Defined at line 1253 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetPoison (LLVMTypeRef Ty)

    Obtain a constant value referring to a poison value of a type.

    Defined at line 1257 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsNull (LLVMValueRef Val)

    Determine whether a value instance is null.

    Defined at line 1265 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstPointerNull (LLVMTypeRef Ty)

    Obtain a constant that is a constant pointer pointing to NULL for a

    specified type.

    Defined at line 1279 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstInt (LLVMTypeRef IntTy, unsigned long long N, LLVMBool SignExtend)

    Obtain a constant value for an integer type.

    The returned value corresponds to a llvm::ConstantInt.

    Parameters

    IntTy Integer type to obtain value of.
    N The value the returned instance should refer to.
    SignExtend Whether to sign extend the produced value.

    Defined at line 1542 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstIntOfArbitraryPrecision (LLVMTypeRef IntTy, unsigned int NumWords, const uint64_t[] Words)

    Obtain a constant value for an integer of arbitrary precision.

    Defined at line 1547 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstIntOfString (LLVMTypeRef IntTy, const char * Text, uint8_t Radix)

    Obtain a constant value for an integer parsed from a string.

    A similar API, LLVMConstIntOfStringAndSize is also available. If the

    string's length is available, it is preferred to call that function

    instead.

    Defined at line 1555 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstIntOfStringAndSize (LLVMTypeRef IntTy, const char * Text, unsigned int SLen, uint8_t Radix)

    Obtain a constant value for an integer parsed from a string with

    specified length.

    Defined at line 1561 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstReal (LLVMTypeRef RealTy, double N)

    Obtain a constant value referring to a double floating point value.

    Defined at line 1567 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstRealOfString (LLVMTypeRef RealTy, const char * Text)

    Obtain a constant for a floating point value parsed from a string.

    A similar API, LLVMConstRealOfStringAndSize is also available. It

    should be used if the input string's length is known.

    Defined at line 1571 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstRealOfStringAndSize (LLVMTypeRef RealTy, const char * Text, unsigned int SLen)

    Obtain a constant for a floating point value parsed from a string.

    Defined at line 1575 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstFPFromBits (LLVMTypeRef Ty, const uint64_t[] N)

    Obtain a constant for a floating point value from array of 64 bit values.

    The length of the array N must be ceildiv(bits, 64), where bits is the

    scalar size in bits of the floating-point type.

    Defined at line 1580 of file llvm/lib/IR/Core.cpp

  • unsigned long long LLVMConstIntGetZExtValue (LLVMValueRef ConstantVal)

    Obtain the zero extended value for an integer constant value.

    Defined at line 1588 of file llvm/lib/IR/Core.cpp

  • long long LLVMConstIntGetSExtValue (LLVMValueRef ConstantVal)

    Obtain the sign extended value for an integer constant value.

    Defined at line 1592 of file llvm/lib/IR/Core.cpp

  • double LLVMConstRealGetDouble (LLVMValueRef ConstantVal, LLVMBool * losesInfo)

    Obtain the double value for an floating point constant value.

    losesInfo indicates if some precision was lost in the conversion.

    Defined at line 1596 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstStringInContext (LLVMContextRef C, const char * Str, unsigned int Length, LLVMBool DontNullTerminate)

    Create a ConstantDataSequential and initialize it with a string.

    Defined at line 1615 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstStringInContext2 (LLVMContextRef C, const char * Str, size_t Length, LLVMBool DontNullTerminate)

    Create a ConstantDataSequential and initialize it with a string.

    Defined at line 1624 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstString (const char * Str, unsigned int Length, LLVMBool DontNullTerminate)

    Create a ConstantDataSequential with string content in the global context.

    This is the same as LLVMConstStringInContext except it operates on the

    global context.

    Defined at line 1633 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsConstantString (LLVMValueRef c)

    Returns true if the specified constant is an array of i8.

    Defined at line 1647 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetAsString (LLVMValueRef c, size_t * Length)

    Get the given constant data sequential as a string.

    Defined at line 1651 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetRawDataValues (LLVMValueRef c, size_t * SizeInBytes)

    Get the raw, underlying bytes of the given constant data sequential.

    This is the same as LLVMGetAsString except it works for all constant data

    sequentials, not just i8 arrays.

    Defined at line 1657 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstStructInContext (LLVMContextRef C, LLVMValueRef * ConstantVals, unsigned int Count, LLVMBool Packed)

    Create an anonymous ConstantStruct with the specified values.

    Defined at line 1682 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstStruct (LLVMValueRef * ConstantVals, unsigned int Count, LLVMBool Packed)

    Create a ConstantStruct in the global Context.

    This is the same as LLVMConstStructInContext except it operates on the

    global Context.

    Defined at line 1690 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstArray (LLVMTypeRef ElementTy, LLVMValueRef * ConstantVals, unsigned int Length)

    Create a ConstantArray from values.

    Defined at line 1663 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstArray2 (LLVMTypeRef ElementTy, LLVMValueRef * ConstantVals, uint64_t Length)

    Create a ConstantArray from values.

    Defined at line 1669 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstDataArray (LLVMTypeRef ElementTy, const char * Data, size_t SizeInBytes)

    Create a ConstantDataArray from raw values.

    ElementTy must be one of i8, i16, i32, i64, half, bfloat, float, or double.

    Data points to a contiguous buffer of raw values in the host endianness. The

    element count is inferred from the element type and the data size in bytes.

    Defined at line 1675 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNamedStruct (LLVMTypeRef StructTy, LLVMValueRef * ConstantVals, unsigned int Count)

    Create a non-anonymous ConstantStruct from values.

    Defined at line 1696 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetAggregateElement (LLVMValueRef C, unsigned int Idx)

    Get element of a constant aggregate (struct, array or vector) at the

    specified index. Returns null if the index is out of range, or it's not

    possible to determine the element (e.g., because the constant is a

    constant expression.)

    Defined at line 1639 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetElementAsConstant (LLVMValueRef C, unsigned int idx)

    Get an element at specified index as a constant.

    Defined at line 1643 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstVector (LLVMValueRef * ScalarConstantVals, unsigned int Size)

    Create a ConstantVector from values.

    Defined at line 1705 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstantPtrAuth (LLVMValueRef Ptr, LLVMValueRef Key, LLVMValueRef Disc, LLVMValueRef AddrDisc)

    Create a ConstantPtrAuth constant with the given values.

    Defined at line 1710 of file llvm/lib/IR/Core.cpp

  •  LLVMGetConstOpcode (LLVMValueRef ConstantVal)

    Functions in this group correspond to APIs on llvm::ConstantExpr.

    @

    {

    Defined at line 1769 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMAlignOf (LLVMTypeRef Ty)

    Defined at line 1773 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMSizeOf (LLVMTypeRef Ty)

    Defined at line 1777 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNeg (LLVMValueRef ConstantVal)

    Defined at line 1781 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNSWNeg (LLVMValueRef ConstantVal)

    Defined at line 1785 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNUWNeg (LLVMValueRef ConstantVal)

    Defined at line 1789 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNot (LLVMValueRef ConstantVal)

    Defined at line 1794 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstAdd (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

    Defined at line 1798 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNSWAdd (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

    Defined at line 1803 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNUWAdd (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

    Defined at line 1809 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstSub (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

    Defined at line 1815 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNSWSub (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

    Defined at line 1820 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstNUWSub (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

    Defined at line 1826 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstXor (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

    Defined at line 1832 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstGEP2 (LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef * ConstantIndices, unsigned int NumIndices)

    Defined at line 1837 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstInBoundsGEP2 (LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef * ConstantIndices, unsigned int NumIndices)

    Defined at line 1845 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstGEPWithNoWrapFlags (LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef * ConstantIndices, unsigned int NumIndices, LLVMGEPNoWrapFlags NoWrapFlags)

    Creates a constant GetElementPtr expression. Similar to LLVMConstGEP2, but

    allows specifying the no-wrap flags.

    Defined at line 1854 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstTrunc (LLVMValueRef ConstantVal, LLVMTypeRef ToType)

    Defined at line 1866 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstPtrToInt (LLVMValueRef ConstantVal, LLVMTypeRef ToType)

    Defined at line 1871 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstIntToPtr (LLVMValueRef ConstantVal, LLVMTypeRef ToType)

    Defined at line 1876 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMConstBitCast (LLVMValueRef ConstantVal, LLVMTypeRef ToType)

    Defined at line 1881 of file llvm/lib/IR/Core.cpp

  • void addPhonyExternalsGenerator (Session & S)

    Defined at line 1884 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • optional salvageDebugInfoImpl (SmallDenseMap<Argument *, AllocaInst *, 4> & ArgToAllocaMap, bool UseEntryValue, Function * F, Value * Storage, DIExpression * Expr, bool SkipOutermostLoad)

    Defined at line 1884 of file llvm/lib/Transforms/Coroutines/CoroFrame.cpp

  • Value * simplifyX86insertq (IntrinsicInst & II, Value * Op0, Value * Op1, APInt APLength, APInt APIndex, InstCombiner::BuilderTy & Builder)

    Attempt to simplify SSE4A INSERTQ/INSERTQI instructions using constant

    folding or conversion to a shuffle vector.

    Defined at line 1885 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • bool doesNotNeedToSchedule (ArrayRef VL)

    Checks if the specified array of instructions does not require scheduling.

    It is so if all either instructions have operands that do not require

    scheduling or their users do not require scheduling since they are phis or

    in other basic blocks.

    Defined at line 1886 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • LLVMValueRef LLVMConstAddrSpaceCast (LLVMValueRef ConstantVal, LLVMTypeRef ToType)

    Defined at line 1886 of file llvm/lib/IR/Core.cpp

  • void addPHINodeEntriesForMappedBlock (BasicBlock * PHIBB, BasicBlock * OldPred, BasicBlock * NewPred, ValueToValueMapTy & ValueMap)

    addPHINodeEntriesForMappedBlock - We're adding 'NewPred' as a new

    predecessor to the PHIBB block. If it has PHI nodes, add entries for

    NewPred using the entries from OldPred (suitably mapped).

    Defined at line 1887 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • Error createJITDylibs (Session & S, std::map<unsigned int, JITDylib *> & IdxToJD)

    Defined at line 1888 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • LLVMValueRef LLVMConstTruncOrBitCast (LLVMValueRef ConstantVal, LLVMTypeRef ToType)

    Defined at line 1892 of file llvm/lib/IR/Core.cpp

  • StringRef getValueStr (const Option & O, StringRef DefaultMsg)

    getValueStr - Get the value description string, using "DefaultMsg" if nothing

    has been specified yet.

    Defined at line 1892 of file llvm/lib/Support/CommandLine.cpp

  • bool hasFullVectorsOrPowerOf2 (const TargetTransformInfo & TTI, Type * Ty, unsigned int Sz)

    Returns true if widened type of

    elements with size

    represents

    full vector type, i.e. adding extra element results in extra parts upon type

    legalization.

    Defined at line 1894 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void collectComdatMembers (Module & M, int & ComdatMembers)

    Collect the set of members for each Comdat in module M and store

    in ComdatMembers.

    Defined at line 1894 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • bool tryToReplaceALMWithWideALM (VPlan & Plan, ElementCount VF, unsigned int UF)

    Try to replace multiple active lane masks used for control flow with

    a single, wide active lane mask instruction followed by multiple

    extract subvector intrinsics. This applies to the active lane mask

    instructions both in the loop and in the preheader.

    Incoming values of all ActiveLaneMaskPHIs are updated to use the

    new extracts from the first active lane mask, which has it's last

    operand (multiplier) set to UF.

    Defined at line 1894 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool fitsInFPType (APFloat F, const fltSemantics & Sem)

    Return a Constant* for the specified floating-point constant if it fits

    in the specified FP type without changing its value.

    Defined at line 1895 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • bool InstrBreaksNoFree (Instruction & I, const SCCNodeSet & SCCNodes)

    Helper for NoFree inference predicate InstrBreaksAttribute.

    Defined at line 1896 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool isVariableIndexable (const DWARFDie & Die, DWARFContext & DCtx)

    Defined at line 1897 of file llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp

  • LLVMValueRef LLVMConstPointerCast (LLVMValueRef ConstantVal, LLVMTypeRef ToType)

    Defined at line 1898 of file llvm/lib/IR/Core.cpp

  • bool needFuncLabels (const MachineFunction & MF, const AsmPrinter & Asm)

    Returns true if function begin and end labels should be emitted.

    Defined at line 1899 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • bool isAMCompletelyFolded (const TargetTransformInfo & TTI, Immediate MinOffset, Immediate MaxOffset, KindType Kind, MemAccessTy AccessTy, const Formula & F, const Loop & L)

    Defined at line 1899 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • Type * shrinkFPConstant (LLVMContext & Ctx, const APFloat & F, bool PreferBFloat)

    Defined at line 1901 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • Value * upgradeX86PSRLDQIntrinsics (IRBuilder<> & Builder, Value * Op, unsigned int Shift)

    Handles upgrading SSE2/AVX2/AVX512BW PSRLDQ intrinsics by converting them

    to byte shuffles.

    Defined at line 1902 of file llvm/lib/IR/AutoUpgrade.cpp

  • Instruction * foldSelectZeroOrOnes (ICmpInst * Cmp, Value * TVal, Value * FVal, InstCombiner::BuilderTy & Builder)

    Defined at line 1903 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • Value * simplifyAndOrOfCmps (const SimplifyQuery & Q, Value * Op0, Value * Op1, bool IsAnd)

    Defined at line 1903 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • LLVMValueRef LLVMConstExtractElement (LLVMValueRef VectorConstant, LLVMValueRef IndexConstant)

    Defined at line 1904 of file llvm/lib/IR/Core.cpp

  • bool parseIRConstant (StringRef::iterator Loc, StringRef StringValue, PerFunctionMIParsingState & PFS, const Constant *& C, ErrorCallbackType ErrCB)

    Defined at line 1904 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • void rewriteMemOpOfSelect (SelectInst & SelInst, Instruction & I, SelectHandSpeculativity Spec, DomTreeUpdater & DTU)

    Defined at line 1905 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool ExpandBVWithShuffles (SDNode * Node, SelectionDAG & DAG, const TargetLowering & TLI, SDValue & Res)

    Defined at line 1905 of file llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

  • Error createError (const Twine & Reason, Error E)

    Defined at line 1908 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • void printObjectLabel (bool PrintArchiveName, StringRef ArchiveName, StringRef ArchitectureName, StringRef ObjectFileName)

    Defined at line 1908 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • template <typename T>
    InstructionCost costAndCollectOperands (const SCEVOperand & WorkItem, const TargetTransformInfo & TTI, TargetCostKind CostKind, SmallVectorImpl<SCEVOperand> & Worklist)

    Defined at line 1908 of file llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp

  • LLVMValueRef LLVMConstInsertElement (LLVMValueRef VectorConstant, LLVMValueRef ElementValueConstant, LLVMValueRef IndexConstant)

    Defined at line 1910 of file llvm/lib/IR/Core.cpp

  • unsigned int getNumberOfParts (const TargetTransformInfo & TTI, VectorType * VecTy, const unsigned int Limit)

    Returns number of parts, the type

    will be split at the codegen

    phase. If the type is going to be scalarized or does not uses whole

    registers, returns 1.

    Defined at line 1910 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isSingleSourceMaskImpl (ArrayRef Mask, int NumOpElts)

    Defined at line 1910 of file llvm/lib/IR/Instructions.cpp

  • bool skipPGOUse (const Function & F)

    Return true if we should not find instrumentation data for this function

    Defined at line 1911 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • StringRef getMIMnemonic (const MachineInstr & MI, MCStreamer & Streamer)

    Return the mnemonic of a MachineInstr if available, or the MachineInstr

    opcode name otherwise.

    Defined at line 1915 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • void replaceConstants (OutlinableRegion & Region)

    Within an extracted function, replace the constants that need to be lifted

    into arguments with the actual argument.

    Parameters

    Region [in] - The region of extracted code to be changed.

    Defined at line 1915 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • bool isLegalUse (const TargetTransformInfo & TTI, Immediate MinOffset, Immediate MaxOffset, KindType Kind, MemAccessTy AccessTy, GlobalValue * BaseGV, Immediate BaseOffset, bool HasBaseReg, int64_t Scale)

    Test whether we know how to expand the current formula.

    Defined at line 1916 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool rewriteSelectInstMemOps (SelectInst & SI, const RewriteableMemOps & Ops, IRBuilderTy & IRB, DomTreeUpdater * DTU)

    Defined at line 1916 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool isOrderedAtomic (Instruction * I)

    Return true if this is an atomic which has an ordering stronger than

    unordered. Note that this is different than the predicate we use in

    Attributor. Here we chose to be conservative and consider monotonic

    operations potentially synchronizing. We generally don't do much with

    monotonic operations, so this is simply risk reduction.

    Defined at line 1917 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • LLVMValueRef LLVMConstShuffleVector (LLVMValueRef VectorAConstant, LLVMValueRef VectorBConstant, LLVMValueRef MaskConstant)

    Defined at line 1918 of file llvm/lib/IR/Core.cpp

  • void initializeEarlyCSELegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 1920 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • Expected hasSymbols (SymbolicFile & Obj)

    Defined at line 1921 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • Type * shrinkFPConstant (ConstantFP * CFP, bool PreferBFloat)

    Defined at line 1921 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • Expected getSymbolInfo (const object::ObjectFile & Obj, const RelocationRef & Reloc, const LoadedObjectInfo * L, std::map<SymbolRef, SymInfo> & Cache)

    Returns the address of symbol relocation used against and a section index.

    Used for futher relocations computation. Symbol's section load address is

    Defined at line 1922 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • void DumpSectionContents (StringRef Filename, MachOObjectFile * O, bool verbose)

    Defined at line 1923 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isSafeDependenceDistance (const DataLayout & DL, ScalarEvolution & SE, const SCEV & MaxBTC, const SCEV & Dist, uint64_t MaxStride)

    Given a dependence-distance

    between two memory accesses, that have

    strides in the same direction whose absolute value of the maximum stride is

    given in

    in a loop whose maximum backedge taken count is

    check if it is possible to prove statically that the dependence

    distance is larger than the range that the accesses will travel through the

    execution of the loop. If so, return true; false otherwise. This is useful

    for example in loops such as the following (PR31098):

    for (i = 0; i

    <

    D; ++i) {

    = out[i];

    out[i+D] =

    }

    Defined at line 1926 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • void translateRegister (MCInst & mcInst, Reg reg)

    translateRegister - Translates an internal register to the appropriate LLVM

    register, and appends it as an operand to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    reg - The Reg to append.

    Defined at line 1927 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • Value * emitBinaryFloatFnCallHelper (Value * Op1, Value * Op2, LibFunc TheLibFunc, StringRef Name, IRBuilderBase & B, const AttributeList & Attrs, const TargetLibraryInfo * TLI)

    Defined at line 1927 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp

  • Value * foldSelectInstWithICmpConst (SelectInst & SI, ICmpInst * ICI, InstCombiner::BuilderTy & Builder)

    Defined at line 1927 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • LLVMValueRef LLVMConstInlineAsm (LLVMTypeRef Ty, const char * AsmString, const char * Constraints, LLVMBool HasSideEffects, LLVMBool IsAlignStack)

    Deprecated: Use LLVMGetInlineAsm instead.

    Defined at line 1928 of file llvm/lib/IR/Core.cpp

  • Instruction * factorizeLerp (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Eliminate an op from a linear interpolation (lerp) pattern.

    Defined at line 1928 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • void addRawAttributeValue (AttrBuilder & B, uint64_t Val)

    Defined at line 1928 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Instruction * foldAndToXor (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Defined at line 1928 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • Error addAbsoluteSymbols (Session & S, const std::map<unsigned int, JITDylib *> & IdxToJD)

    Defined at line 1928 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • bool isLegalUse (const TargetTransformInfo & TTI, Immediate MinOffset, Immediate MaxOffset, KindType Kind, MemAccessTy AccessTy, const Formula & F)

    Defined at line 1930 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void printSymbolNamesFromObject (SymbolicFile & Obj, int & SymbolList, bool PrintSymbolObject, bool PrintObjectLabel, StringRef ArchiveName, StringRef ArchitectureName, StringRef ObjectName, bool PrintArchiveName)

    Defined at line 1932 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • Value * emitTaskDependencies (OpenMPIRBuilder & OMPBuilder, const SmallVectorImpl<OpenMPIRBuilder::DependData> & Dependencies)

    Processes the dependencies in Dependencies and does the following

    - Allocates space on the stack of an array of DependInfo objects

    - Populates each DependInfo object with relevant information of

    the corresponding dependence.

    - All code is inserted in the entry block of the current function.

    Defined at line 1932 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool OptimizeFunctions (Module & M, function_ref<TargetLibraryInfo &(Function &)> GetTLI, function_ref<TargetTransformInfo &(Function &)> GetTTI, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, function_ref<DominatorTree &(Function &)> LookupDomTree, SmallPtrSetImpl<const Comdat *> & NotDiscardableComdats, function_ref<void (Function &)> ChangedCFGCallback, function_ref<void (Function &)> DeleteFnCallback)

    Defined at line 1932 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool verifyScalarSize (uint64_t Size)

    See LLT implementation for bit size limits.

    Defined at line 1933 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • int findRegUnitSet (const int & UniqueSets, const RegUnitSet & Set)

    Find a set in UniqueSets with the same elements as Set.

    Return an iterator into UniqueSets.

    Defined at line 1934 of file llvm/utils/TableGen/Common/CodeGenRegisters.cpp

  • bool isIdentityMaskImpl (ArrayRef Mask, int NumOpElts)

    Defined at line 1934 of file llvm/lib/IR/Instructions.cpp

  • Value * getX86MaskVec (IRBuilder<> & Builder, Value * Mask, unsigned int NumElts)

    Defined at line 1934 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool skipPGOGen (const Function & F)

    Return true if we should not instrument this function

    Defined at line 1935 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • bool InstrBreaksNoSync (Instruction & I, const SCCNodeSet & SCCNodes)

    Defined at line 1935 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool foldICmpWithDominatingICmp (CmpInst * Cmp, const TargetLowering & TLI)

    For pattern like:

    DomCond = icmp sgt/slt CmpOp0, CmpOp1 (might not be in DomBB)

    ...

    DomBB:

    ...

    br DomCond, TrueBB, CmpBB

    CmpBB: (with DomBB being the single predecessor)

    ...

    Cmp = icmp eq CmpOp0, CmpOp1

    ...

    It would use two comparison on targets that lowering of icmp sgt/slt is

    different from lowering of icmp eq (PowerPC). This function try to convert

    'Cmp = icmp eq CmpOp0, CmpOp1' to ' Cmp = icmp slt/sgt CmpOp0, CmpOp1'.

    After that, DomCond and Cmp can use the same comparison so reduce one

    comparison.

    Return true if any changes are made.

    Defined at line 1935 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • LLVMDbgRecordRef LLVMDIBuilderInsertLabelAtEnd (LLVMDIBuilderRef Builder, LLVMMetadataRef LabelInfo, LLVMMetadataRef Location, LLVMBasicBlockRef InsertAtEnd)

    Insert a new llvm.dbg.label intrinsic call

    Parameters

    Builder The DIBuilder.
    LabelInfo The Label's debug info descriptor
    Location The debug info location
    InsertAtEnd Location for the new intrinsic.

    Defined at line 1936 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMValueRef LLVMBlockAddress (LLVMValueRef F, LLVMBasicBlockRef BB)

    Defined at line 1936 of file llvm/lib/IR/Core.cpp

  • void simplifyLCSSAPhis (Loop * OuterLoop, Loop * InnerLoop)

    This deals with a corner case when a LCSSA phi node appears in a non-exit

    block: the outer loop latch block does not need to be exit block of the

    inner loop. Consider a loop that was in LCSSA form, but then some

    transformation like loop-unswitch comes along and creates an empty block,

    where BB5 in this example is the outer loop latch block:

    BB4:

    br label %BB5

    BB5:

    %old.cond.lcssa = phi i16 [ %cond, %BB4 ]

    br outer.header

    Interchange then brings it in LCSSA form again resulting in this chain of

    single-input phi nodes:

    BB4:

    %new.cond.lcssa = phi i16 [ %cond, %BB3 ]

    br label %BB5

    BB5:

    %old.cond.lcssa = phi i16 [ %new.cond.lcssa, %BB4 ]

    The problem is that interchange can reoder blocks BB4 and BB5 placing the

    use before the def if we don't check this. The solution is to simplify

    lcssa phi nodes (remove) if they appear in non-exit blocks.

    Defined at line 1936 of file llvm/lib/Transforms/Scalar/LoopInterchange.cpp

  • bool verifyVectorElementCount (uint64_t NumElts)

    Defined at line 1937 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • bool isLegalAddImmediate (const TargetTransformInfo & TTI, Immediate Offset)

    Defined at line 1937 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • Type * shrinkFPConstantVector (Value * V, bool PreferBFloat)

    Determine if this is a vector of ConstantFPs and if so, return the minimal

    type we can safely truncate all elements to.

    Defined at line 1937 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • Instruction * foldFDivConstantDividend (BinaryOperator & I)

    Remove negation and try to reassociate constant math.

    Defined at line 1937 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • Value * replaceUnaryCall (CallInst * CI, IRBuilderBase & B, Intrinsic::ID IID)

    Replace a libcall

    with a call to intrinsic

    Defined at line 1938 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void makeStatepointExplicit (DominatorTree & DT, CallBase * Call, PartiallyConstructedSafepointRecord & Result, int & Replacements, const int & PointerToBase, GCStrategy * GC)

    Replace an existing gc.statepoint with a new one and a set of gc.relocates

    which make the relocations happening at this safepoint explicit.

    WARNING: Does not do any fixup to adjust users of the original live

    values. That's the callers responsibility.

    Defined at line 1939 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • LLVMValueRef LLVMGetBlockAddressFunction (LLVMValueRef BlockAddr)

    Gets the function associated with a given BlockAddress constant value.

    Defined at line 1940 of file llvm/lib/IR/Core.cpp

  • bool verifyAddrSpace (uint64_t AddrSpace)

    Defined at line 1941 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • int checkSpecialNodes (const SUnit * left, const SUnit * right)

    Check for special nodes that bypass scheduling heuristics.

    Currently this pushes TokenFactor nodes down, but may be used for other

    pseudo-ops as well.

    Return -1 to schedule right above left, 1 for left above right.

    Return 0 if no bias exists.

    Defined at line 1941 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • void initializeEarlyCSEMemSSALegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 1941 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp

  • bool isRegUnitSubSet (const int & RUSubSet, const int & RUSuperSet)

    Return true if the RUSubSet is a subset of RUSuperSet.

    Defined at line 1942 of file llvm/utils/TableGen/Common/CodeGenRegisters.cpp

  • DenseMap collectEscapedLocals (const DataLayout & DL, const CallBase & CB)

    Find Alloca and linked DbgAssignIntrinsic for locals escaped by

    Defined at line 1943 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • LLVMBasicBlockRef LLVMGetBlockAddressBasicBlock (LLVMValueRef BlockAddr)

    Gets the basic block associated with a given BlockAddress constant value.

    Defined at line 1944 of file llvm/lib/IR/Core.cpp

  • Instruction * factorizeFAddFSub (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Factor a common operand out of fadd/fsub of fmul/fdiv.

    Defined at line 1944 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • optional findDuplicateOutputBlock (DenseMap<Value *, BasicBlock *> & OutputBBs, std::vector<DenseMap<Value *, BasicBlock *>> & OutputStoreBBs)

    It is possible that there is a basic block that already performs the same

    stores. This returns a duplicate block, if it exists

    Parameters

    OutputBBs [in] the blocks we are looking for a duplicate of.
    OutputStoreBBs [in] The existing output blocks.

    Defined at line 1944 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • Value * buildNew (Instruction * I, ArrayRef NewOps, IRBuilderBase & Builder)

    Rebuild a new instruction just like 'I' but with the new operands given.

    In the event of type mismatch, the type of the operands is correct.

    Defined at line 1944 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • Value * simplifyAndOrWithICmpEq (unsigned int Opcode, Value * Op0, Value * Op1, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Defined at line 1946 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isDirectCall (Use & U)

    Defined at line 1948 of file llvm/lib/Transforms/IPO/LowerTypeTests.cpp

  • void decodeLLVMAttributesForBitcode (AttrBuilder & B, uint64_t EncodedAttrs, uint64_t AttrIdx)

    This fills an AttrBuilder object with the LLVM attributes that have

    been decoded from the given integer.

    Defined at line 1948 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • LLVMModuleRef LLVMGetGlobalParent (LLVMValueRef Global)

    This group contains functions that operate on global values. Functions in

    this group relate to functions in the llvm::GlobalValue class tree.

    @

    {

    Defined at line 1950 of file llvm/lib/IR/Core.cpp

  • bool isKnownNonConstant (Value * V)

    Returns true if we can statically tell that this value will never be a

    "useful" constant. In practice, this means we've got something like an

    alloca or a malloc call for which a comparison against a constant can

    only be guarding dead code. Note that we are potentially giving up some

    precision in dead code (a constant result) in favour of avoiding a

    expensive search for a easily answered common query.

    Defined at line 1950 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • Value * getAdjustedPtr (IRBuilderTy & IRB, const DataLayout & DL, Value * Ptr, APInt Offset, Type * PointerTy, const Twine & NamePrefix)

    Compute an adjusted pointer from Ptr by Offset bytes where the

    resulting pointer has PointerTy.

    Defined at line 1950 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • Value * valueHasFloatPrecision (Value * Val)

    Return a variant of Val with float type.

    Currently this works in two cases: If Val is an FPExtension of a float

    value to something bigger, simply return the operand.

    If Val is a ConstantFP but can be converted to a float ConstantFP without

    loss of precision do so.

    Defined at line 1950 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • bool translateSrcIndex (MCInst & mcInst, InternalInstruction & insn)

    translateSrcIndex - Appends a source index operand to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    insn - The internal instruction.

    Defined at line 1950 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • unsigned int CalcNodeSethiUllmanNumber (const SUnit * SU, int & SUNumbers)

    CalcNodeSethiUllmanNumber - Compute Sethi Ullman number.

    Smaller number is the higher priority.

    Defined at line 1951 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • LLVMMetadataKind LLVMGetMetadataKind (LLVMMetadataRef Metadata)

    Obtain the enumerated type of a Metadata instance.

    Defined at line 1953 of file llvm/lib/IR/DebugInfo.cpp

  • LLVMBool LLVMIsDeclaration (LLVMValueRef Global)

    Defined at line 1954 of file llvm/lib/IR/Core.cpp

  • Value * emitX86Select (IRBuilder<> & Builder, Value * Mask, Value * Op0, Value * Op1)

    Defined at line 1954 of file llvm/lib/IR/AutoUpgrade.cpp

  • Instruction * foldOrToXor (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Defined at line 1954 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool InstrumentAllFunctions (Module & M, function_ref<TargetLibraryInfo &(Function &)> LookupTLI, function_ref<BranchProbabilityInfo *(Function &)> LookupBPI, function_ref<BlockFrequencyInfo *(Function &)> LookupBFI, function_ref<LoopInfo *(Function &)> LookupLI, PGOInstrumentationType InstrumentationType)

    Defined at line 1954 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • void setupOptionsForPipelineAlias (PipelineTuningOptions & PTO, OptimizationLevel L)

    Defined at line 1956 of file llvm/lib/Passes/PassBuilder.cpp

  • void writeMetadataAsOperand (raw_ostream & Out, const Metadata * MD, AsmWriterContext & WriterCtx)

    Defined at line 1956 of file llvm/lib/IR/AsmWriter.cpp

  • void dumpSymbolsNameFromMachOFilesetEntry (MachOObjectFile * Obj, int & SymbolList, bool PrintSymbolObject, bool PrintObjectLabel)

    Defined at line 1957 of file llvm/tools/llvm-nm/llvm-nm.cpp

  •  LLVMGetLinkage (LLVMValueRef Global)

    Defined at line 1958 of file llvm/lib/IR/Core.cpp

  • bool isRemainderZero (const SCEVConstant * Dividend, const SCEVConstant * Divisor)

    Return true if the divisor evenly divides the dividend.

    Defined at line 1959 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • bool isGuaranteedNotToBeUndefOrPoison (Register Reg, const MachineRegisterInfo & MRI, unsigned int Depth, UndefPoisonKind Kind)

    Defined at line 1959 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • void updateOneDbgValueForAlloca (const DebugLoc & Loc, DILocalVariable * DIVar, DIExpression * DIExpr, Value * NewAddress, DbgVariableRecord * DVR, DIBuilder & Builder, int Offset)

    Defined at line 1960 of file llvm/lib/Transforms/Utils/Local.cpp

  • Align getAdjustedAlignment (Instruction * I, uint64_t Offset)

    Compute the adjusted alignment for a load or store from an offset.

    Defined at line 1961 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • void removeCoroEndsFromRampFunction (const coro::Shape & Shape)

    Remove calls to llvm.coro.end in the original function.

    Defined at line 1962 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • PointerToMemberRepresentation translatePtrToMemberRep (unsigned int SizeInBytes, bool IsPMF, unsigned int Flags)

    Defined at line 1964 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • unsigned int GetNumNodeResults (const Record * Operator, CodeGenDAGPatterns & CDP)

    ===----------------------------------------------------------------------===//

    TreePatternNode implementation

    Defined at line 1964 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • Value * emitX86ScalarSelect (IRBuilder<> & Builder, Value * Mask, Value * Op0, Value * Op1)

    Defined at line 1966 of file llvm/lib/IR/AutoUpgrade.cpp

  • Error addAliases (Session & S, const std::map<unsigned int, JITDylib *> & IdxToJD)

    Defined at line 1966 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • bool rebuildLoopAfterUnswitch (Loop & L, ArrayRef ExitBlocks, LoopInfo & LI, SmallVectorImpl<Loop *> & HoistedLoops, ScalarEvolution * SE)

    Rebuild a loop after unswitching removes some subset of blocks and edges.

    The removal may have removed some child loops entirely but cannot have

    disturbed any remaining child loops. However, they may need to be hoisted

    to the parent loop (or to be top-level loops). The original loop may be

    completely removed.

    The sibling loops resulting from this update are returned. If the original

    loop remains a valid loop, it will be the first entry in this list with all

    of the newly sibling loops following it.

    Returns true if the loop remains a loop after unswitching, and false if it

    is no longer a loop after unswitching (and should not continue to be

    referenced).

    Defined at line 1966 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • Value * optimizeDoubleFP (CallInst * CI, IRBuilderBase & B, bool isBinary, const TargetLibraryInfo * TLI, bool isPrecise)

    Shrink double -> float functions.

    Defined at line 1968 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void insertRelocationStores (iterator_range GCRelocs, int & AllocaMap, int & VisitedLiveValues)

    Helper function for the relocationViaAlloca.

    It receives iterator to the statepoint gc relocates and emits a store to the

    assigned location (via allocaMap) for the each one of them. It adds the

    visited values into the visitedLiveValues set, which we will later use them

    for validation checking.

    Defined at line 1969 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void inferConvergent (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Attempt to remove convergent function attribute when possible.

    Returns true if any changes to function attributes were made.

    Defined at line 1970 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool canConvertValue (const DataLayout & DL, Type * OldTy, Type * NewTy, unsigned int VScale)

    Test whether we can convert a value from the old to the new type.

    This predicate should be used to guard calls to convertValue in order to

    ensure that we only try to convert viable values. The strategy is that we

    will peel off single element struct and array wrappings to get to an

    underlying value, and convert that value.

    Defined at line 1971 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • void getFuncSampleStats (const sampleprof::FunctionSamples & Func, FuncSampleStats & FuncStats, uint64_t HotThreshold)

    Return the sum of line/block samples, the max line/block sample, and the

    number of line/block samples above the given threshold in a function

    including its inlinees.

    Defined at line 1972 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • Type * getMinimumFPType (Value * V, bool PreferBFloat)

    Find the minimum FP type we can safely truncate to.

    Defined at line 1972 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • Instruction * foldFDivPowDivisor (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Negate the exponent of pow/exp to fold division-by-pow() into multiply.

    Defined at line 1972 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • void removeCoroIsInRampFromRampFunction (const coro::Shape & Shape)

    Defined at line 1973 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool translateDstIndex (MCInst & mcInst, InternalInstruction & insn)

    translateDstIndex - Appends a destination index operand to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    insn - The internal instruction.

    Defined at line 1975 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • basic_string getBaseRelocTypeName (uint8_t Type)

    Defined at line 1976 of file llvm/tools/llvm-readobj/COFFDumper.cpp

  • Value * simplifyX86pshufb (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Attempt to convert pshufb* to shufflevector if the mask is constant.

    Defined at line 1976 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • bool isRelocScattered (const object::ObjectFile & Obj, const RelocationRef & Reloc)

    Defined at line 1977 of file llvm/lib/DebugInfo/DWARF/DWARFContext.cpp

  • void reportLoadElim (LoadInst * Load, Value * AvailableValue, OptimizationRemarkEmitter * ORE)

    Defined at line 1979 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • bool hasSafeElideCaller (Function & F)

    Defined at line 1981 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool areStridedAccessesIndependent (uint64_t Distance, uint64_t Stride, uint64_t TypeByteSize)

    Check the dependence for two accesses with the same stride

    is the positive distance in bytes, and

    is type

    size in bytes.

    Defined at line 1981 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • int getARMOffsetInProlog (const std::vector<WinEH::Instruction> & Prolog, const std::vector<WinEH::Instruction> & Epilog, bool CanTweakProlog)

    Check if an epilog exists as a subset of the end of a prolog (backwards).

    An epilog may end with one out of three different end opcodes; if this

    is the first epilog that shares opcodes with the prolog, we can tolerate

    that this opcode differs (and the caller will update the prolog to use

    the same end opcode as the epilog). If another epilog already shares

    opcodes with the prolog, the ending opcode must be a strict match.

    Defined at line 1982 of file llvm/lib/MC/MCWin64EH.cpp

  • SDValue EmitTailCallStoreRetAddr (SelectionDAG & DAG, MachineFunction & MF, SDValue Chain, SDValue RetAddrFrIdx, EVT PtrVT, unsigned int SlotSize, int FPDiff, const SDLoc & dl)

    Emit a store of the return address if tail call

    optimization is performed and it is required (FPDiff!=0).

    Defined at line 1983 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • Value * upgradeX86ALIGNIntrinsics (IRBuilder<> & Builder, Value * Op0, Value * Op1, Value * Shift, Value * Passthru, Value * Mask, bool IsVALIGN)

    Handle autoupgrade for masked PALIGNR and VALIGND/Q intrinsics.

    PALIGNR handles large immediates by shifting while VALIGN masks the immediate

    so we need to handle both cases. VALIGN also doesn't have 128-bit lanes.

    Defined at line 1983 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool simplifyBranchConditionForVFAndUF (VPlan & Plan, ElementCount BestVF, unsigned int BestUF, PredicatedScalarEvolution & PSE)

    Try to simplify the branch condition of

    This may restrict the

    resulting plan to

    and

    Defined at line 1986 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void PrintCFIEscape (llvm::formatted_raw_ostream & OS, StringRef Values)

    Defined at line 1987 of file llvm/lib/MC/MCAsmStreamer.cpp

  • void LLVMSetLinkage (LLVMValueRef Global,  Linkage)

    Defined at line 1987 of file llvm/lib/IR/Core.cpp

  • void dumpSymbolNamesFromObject (SymbolicFile & Obj, int & SymbolList, bool PrintSymbolObject, bool PrintObjectLabel, StringRef ArchiveName, StringRef ArchitectureName, StringRef ObjectName, bool PrintArchiveName)

    Defined at line 1988 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool canNarrowShiftAmt (Constant * C, unsigned int BitWidth)

    Return true if a constant shift amount is always less than the specified

    bit-width. If not, the shift could create poison in the narrower type.

    Defined at line 1990 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • Instruction * foldSelectWithExtremeEqCond (Value * CmpLHS, Value * CmpRHS, Value * TrueVal, Value * FalseVal)

    `A == MIN_INT ? B != MIN_INT : A

    <

    B` --> `A

    <

    B`

    `A == MAX_INT ? B != MAX_INT : A > B` --> `A > B`

    Defined at line 1990 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool isFunctionHot (const FuncSampleStats & FuncStats, uint64_t HotThreshold)

    Predicate that determines if a function is hot with a given threshold. We

    keep it separate from its callsites for possible extension in the future.

    Defined at line 1991 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • unsigned int getConverterOperandID (const std::string & Name, SmallSetVector<CachedHashString, 16> & Table, bool & IsNew)

    Defined at line 1991 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • void trackInlinedStores (ilist_iterator Start, ilist_iterator End, const CallBase & CB)

    Defined at line 1992 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void insertRematerializationStores (const int & RematerializedValues, int & AllocaMap, int & VisitedLiveValues)

    Helper function for the "relocationViaAlloca". Similar to the

    "insertRelocationStores" but works for rematerialized values.

    Defined at line 1995 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • Value * simplifyLogicOfAddSub (Value * Op0, Value * Op1, BinaryOps Opcode)

    Given a bitwise logic op, check if the operands are add/sub with a common

    source value and inverted constant (identity: C - X -> ~(X + ~C)).

    Defined at line 1997 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void translateImmediate (MCInst & mcInst, uint64_t immediate, const OperandSpecifier & operand, InternalInstruction & insn, const MCDisassembler * Dis)

    translateImmediate - Appends an immediate operand to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    immediate - The immediate value to append.
    operand - The operand, as stored in the descriptor table.
    insn - The internal instruction.

    Defined at line 1997 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • void dropTypeTests (Module & M, Function & TypeTestFunc, bool ShouldDropAll)

    Defined at line 1998 of file llvm/lib/Transforms/IPO/LowerTypeTests.cpp

  • bool analyzeAndPruneOutputBlocks (DenseMap<Value *, BasicBlock *> & BlocksToPrune, OutlinableRegion & Region)

    Remove empty output blocks from the outlined region.

    Parameters

    BlocksToPrune - Mapping of return values output blocks for the
    Region - The OutlinableRegion we are analyzing.

    Defined at line 1998 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • void doSplitCoroutine (Function & F, SmallVectorImpl<Function *> & Clones, coro::BaseABI & ABI, TargetTransformInfo & TTI, bool OptimizeFrame)

    Defined at line 1999 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • void printNode (raw_ostream & OS, LazyCallGraph::Node & N)

    Defined at line 2000 of file llvm/lib/Analysis/LazyCallGraph.cpp

  • bool isKnownExactCastIntToFP (CastInst & I, InstCombinerImpl & IC)

    Return true if the cast from integer to FP can be proven to be exact for all

    possible inputs (the conversion does not lose any precision).

    Defined at line 2000 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • void inferAttrsFromFunctionBodies (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Infer attributes from all functions in the SCC by scanning every

    instruction for compliance to the attribute assumptions.

    Returns true if any changes to function attributes were made.

    Defined at line 2001 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • template <typename T>
    void salvageDbgAssignAddress (T * Assign)

    Defined at line 2002 of file llvm/lib/Transforms/Utils/Local.cpp

  • void fixupAssignments (ilist_iterator Start, ilist_iterator End)

    Update inlined instructions' DIAssignID metadata. We need to do this

    otherwise a function inlined more than once into the same function

    will cause DIAssignID to be shared by many instructions.

    Defined at line 2004 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • unsigned int emitConvertFuncs (CodeGenTarget & Target, StringRef ClassName, int & Infos, bool HasMnemonicFirst, bool HasOptionalOperands, raw_ostream & OS)

    Defined at line 2004 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • bool swapICmpOperandsToExposeCSEOpportunities (CmpInst * Cmp)

    Many architectures use the same instruction for both subtract and cmp. Try

    to swap cmp operands to match subtract operations to allow for CSE.

    Defined at line 2005 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • PointerBounds expandBounds (const RuntimeCheckingPtrGroup * CG, Loop * TheLoop, Instruction * Loc, SCEVExpander & Exp, bool HoistRuntimeChecks)

    Expand code for the lower and upper bound of the pointer group

    in

    Returns

    the values for the bounds.

    Defined at line 2006 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • bool hasTiedDef (MachineRegisterInfo * MRI, Register reg)

    Return true if

    has any tied def operand.

    Defined at line 2007 of file llvm/lib/CodeGen/RegAllocGreedy.cpp

  • bool isAlwaysFoldable (const TargetTransformInfo & TTI, KindType Kind, MemAccessTy AccessTy, GlobalValue * BaseGV, Immediate BaseOffset, bool HasBaseReg)

    Defined at line 2007 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • Constant * getFPClassConstant (Type * Ty, FPClassTest Mask)

    For floating-point classes that resolve to a single bit pattern, return that

    value.

    Defined at line 2008 of file llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp

  • void printSCC (raw_ostream & OS, LazyCallGraph::SCC & C)

    Defined at line 2009 of file llvm/lib/Analysis/LazyCallGraph.cpp

  • ErrorOr setupMemoryBuffer (const Twine & Filename, vfs::FileSystem & FS)

    Prepare a memory buffer for the contents of

    Defined at line 2010 of file llvm/lib/ProfileData/SampleProfReader.cpp

  • void dumpScopes (SmallVectorImpl<CHRScope *> & Scopes, const char * Label)

    Defined at line 2012 of file llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp

  • bool canCreatePoison (Register Reg, const MachineRegisterInfo & MRI, bool ConsiderFlagsAndMetadata)

    Defined at line 2014 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp

  • Value * matchShiftULTCondition (BranchInst * BI, BasicBlock * LoopEntry, APInt & Threshold)

    Check if the given conditional branch is based on an unsigned less-than

    comparison between a variable and a constant, and if the comparison is false

    the control yields to the loop entry. If the branch matches the behaviour,

    the variable involved in the comparison is returned.

    Defined at line 2014 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • void moveFastMathFlags (Function & F, int & Instructions)

    Moves fast math flags from the function to individual instructions, and

    removes the attribute from the function.

    TODO: Make this controllable with a flag.

    Defined at line 2015 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • MCSectionCOFF * getCOFFStaticStructorSection (MCContext & Ctx, const Triple & T, bool IsCtor, unsigned int Priority, const MCSymbol * KeySym, MCSectionCOFF * Default)

    Defined at line 2015 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • void printRefSCC (raw_ostream & OS, LazyCallGraph::RefSCC & C)

    Defined at line 2016 of file llvm/lib/Analysis/LazyCallGraph.cpp

  • bool assignedRegPartiallyOverlaps (const TargetRegisterInfo & TRI, const VirtRegMap & VRM, MCRegister PhysReg, const LiveInterval & Intf)

    Return true if the existing assignment of

    overlaps, but is not the

    same, as

    Defined at line 2017 of file llvm/lib/CodeGen/RegAllocGreedy.cpp

  • void relocationViaAlloca (Function & F, DominatorTree & DT, ArrayRef Live, ArrayRef<PartiallyConstructedSafepointRecord> Records)

    Do all the relocation update via allocas and mem2reg

    Defined at line 2017 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • Instruction * foldFDivSqrtDivisor (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Convert div to mul if we have an sqrt divisor iff sqrt's operand is a fdiv

    instruction.

    Defined at line 2018 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • int checkARMPackedEpilog (MCStreamer & streamer, WinEH::FrameInfo * info, int PrologCodeBytes)

    Defined at line 2018 of file llvm/lib/MC/MCWin64EH.cpp

  • CallingConvention dwarfCCToCodeView (unsigned int DwarfCC)

    Given a DWARF calling convention, get the CodeView equivalent. If we don't

    have a translation, use the NearC convention.

    Defined at line 2019 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void getNegatibleInsts (Value * V, SmallVectorImpl<Instruction *> & Candidates)

    Recursively analyze an expression to build a list of instructions that have

    negative floating-point constant operands. The caller can then transform

    the list to create positive constants for better reassociation and CSE.

    Defined at line 2019 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • Value * simplifyAndCommutative (Value * Op0, Value * Op1, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Commutative patterns for and that will be tried with both operand orders.

    Defined at line 2020 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * evaluateInDifferentElementOrder (Value * V, ArrayRef Mask, IRBuilderBase & Builder)

    Defined at line 2020 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • Value * simplifyX86vpermilvar (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Attempt to convert vpermilvar* to shufflevector if the mask is constant.

    Defined at line 2021 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • void updateCallerBFI (BasicBlock * CallSiteBlock, const ValueToValueMapTy & VMap, BlockFrequencyInfo * CallerBFI, BlockFrequencyInfo * CalleeBFI, const BasicBlock & CalleeEntryBlock)

    Update the block frequencies of the caller after a callee has been inlined.

    Each block cloned into the caller has its block frequency scaled by the

    ratio of CallSiteFreq/CalleeEntryFreq. This ensures that the cloned copy of

    callee's entry block gets the same frequency as the callsite block and the

    relative frequencies of all cloned blocks remain the same after cloning.

    Defined at line 2022 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool checkForAllInstructionsImpl (Attributor * A, int & OpcodeInstMap, function_ref<bool (Instruction &)> Pred, const AbstractAttribute * QueryingAA, const AAIsDead * LivenessAA, ArrayRef Opcodes, bool & UsedAssumedInformation, bool CheckBBLivenessOnly, bool CheckPotentiallyDead)

    Defined at line 2022 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • Value * foldICmpOrXorSubChain (ICmpInst & Cmp, BinaryOperator * Or, InstCombiner::BuilderTy & Builder)

    Fold icmp eq/ne (or (xor/sub (X1, X2), xor/sub (X3, X4))), 0.

    Defined at line 2022 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • Constant * getPredicateResult (Predicate Pred, Constant * C, const ValueLatticeElement & Val, const DataLayout & DL)

    Defined at line 2023 of file llvm/lib/Analysis/LazyValueInfo.cpp

  • void remapSourceAtoms (ValueToValueMapTy & VM, ilist_iterator_w_bits Begin, ilist_iterator_w_bits End)

    Defined at line 2024 of file llvm/lib/Transforms/Scalar/JumpThreading.cpp

  • bool checkMachOAndArchFlags (SymbolicFile * O, StringRef Filename)

    checkMachOAndArchFlags() checks to see if the SymbolicFile is a Mach-O file

    and if it is and there is a list of architecture flags is specified then

    check to make sure this Mach-O file is one of those architectures or all

    architectures was specificed. If not then an error is generated and this

    routine returns false. Else it returns true.

    Defined at line 2024 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • Value * optimizeUnaryDoubleFP (CallInst * CI, IRBuilderBase & B, const TargetLibraryInfo * TLI, bool isPrecise)

    Shrink double -> float for unary functions.

    Defined at line 2027 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • Error printMatch (bool ExpectedMatch, const SourceMgr & SM, StringRef Prefix, SMLoc Loc, const Pattern & Pat, int MatchedCount, StringRef Buffer, MatchResult MatchResult, const FileCheckRequest & Req, std::vector<FileCheckDiag> * Diags)

    Returns either (1)

    if there was no error or (2)

    if an error was reported, such as an unexpected match.

    Defined at line 2027 of file llvm/lib/FileCheck/FileCheck.cpp

  • Instruction * foldSelectICmpEq (SelectInst & SI, ICmpInst * ICI, InstCombinerImpl & IC)

    Defined at line 2028 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • Value * upgradeX86VPERMT2Intrinsics (IRBuilder<> & Builder, CallBase & CI, bool ZeroMask, bool IndexForm)

    Defined at line 2028 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeBasicAAWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 2030 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp

  • void fixFuncEntryCount (PGOUseFunc & Func, LoopInfo & LI, BranchProbabilityInfo & NBPI)

    Using the ratio b/w sums of profile count values and BFI count values to

    adjust the func entry count.

    Defined at line 2030 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • void extractCUsTus (DWARFContext & DCtx)

    Extracts all the data for CU/TUs so we can access it in parallel without

    locks.

    Defined at line 2032 of file llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp

  • Value * optimizeBinaryDoubleFP (CallInst * CI, IRBuilderBase & B, const TargetLibraryInfo * TLI, bool isPrecise)

    Shrink double -> float for binary functions.

    Defined at line 2034 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • bool foldFCmpToFPClassTest (CmpInst * Cmp, const TargetLowering & TLI, const DataLayout & DL)

    Defined at line 2034 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • void DumpInfoPlistSectionContents (StringRef Filename, MachOObjectFile * O)

    Defined at line 2037 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Error addSectCreates (Session & S, const std::map<unsigned int, JITDylib *> & IdxToJD)

    Defined at line 2037 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • Instruction * foldComplexAndOrPatterns (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Try folding relatively complex patterns for both And and Or operations

    with all And and Or swapped.

    Defined at line 2038 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool isAlwaysFoldable (const TargetTransformInfo & TTI, ScalarEvolution & SE, Immediate MinOffset, Immediate MaxOffset, KindType Kind, MemAccessTy AccessTy, const SCEV * S, bool HasBaseReg)

    Defined at line 2039 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • PHINode * getRecurrenceVar (Value * VarX, Instruction * DefX, BasicBlock * LoopEntry)

    Check if the recurrence variable `VarX` is in the right form to create

    the idiom. Returns the value coerced to a PHINode if so.

    Defined at line 2040 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • unsigned int parseOptionalLinkageAux (Kind Kind, bool & HasLinkage)

    Defined at line 2040 of file llvm/lib/AsmParser/LLParser.cpp

  • void printNodeDOT (raw_ostream & OS, LazyCallGraph::Node & N)

    Defined at line 2045 of file llvm/lib/Analysis/LazyCallGraph.cpp

  • void ProfileFoldOpInit (FoldingSetNodeID & ID, const Init * Start, const Init * List, const Init * A, const Init * B, const Init * Expr, const RecTy * Type)

    Defined at line 2046 of file llvm/lib/TableGen/Record.cpp

  • void alignOutputBlockWithAggFunc (OutlinableGroup & OG, OutlinableRegion & Region, DenseMap<Value *, BasicBlock *> & OutputBBs, DenseMap<Value *, BasicBlock *> & EndBBs, const DenseMap<Value *, Value *> & OutputMappings, std::vector<DenseMap<Value *, BasicBlock *>> & OutputStoreBBs)

    For the outlined section, move needed the StoreInsts for the output

    registers into their own block. Then, determine if there is a duplicate

    output block already created.

    Parameters

    OG [in] - The OutlinableGroup of regions to be outlined.
    Region [in] - The OutlinableRegion that is being analyzed.
    OutputBBs [in,out] - the blocks that stores for this region will be placed in.
    EndBBs [in] - the final blocks of the extracted function.
    OutputMappings [in] - OutputMappings the mapping of values that have been replaced by a new output value.
    OutputStoreBBs [in,out] - The existing output blocks.

    Defined at line 2046 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • bool fullyContains (DbgVariableFragmentInfo A, DbgVariableFragmentInfo B)

    Return true if A fully contains B.

    Defined at line 2048 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • LazyCallGraph::SCC & updateCallGraphAfterCoroutineSplit (LazyCallGraph::Node & N, const coro::Shape & Shape, const SmallVectorImpl<Function *> & Clones, LazyCallGraph::SCC & C, LazyCallGraph & CG, CGSCCAnalysisManager & AM, CGSCCUpdateResult & UR, FunctionAnalysisManager & FAM)

    Defined at line 2048 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • void updateCallProfile (Function * Callee, const ValueToValueMapTy & VMap, const ProfileCount & CalleeEntryCount, const CallBase & TheCall, ProfileSummaryInfo * PSI, BlockFrequencyInfo * CallerBFI)

    Update the branch metadata for cloned call instructions.

    Defined at line 2050 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void printArchiveMap (iterator_range<Archive::symbol_iterator> & map, StringRef Filename)

    Defined at line 2051 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • const char * LLVMGetSection (LLVMValueRef Global)

    Defined at line 2052 of file llvm/lib/IR/Core.cpp

  • bool OptimizeGlobalVars (Module & M, function_ref<TargetTransformInfo &(Function &)> GetTTI, function_ref<TargetLibraryInfo &(Function &)> GetTLI, function_ref<DominatorTree &(Function &)> LookupDomTree, SmallPtrSetImpl<const Comdat *> & NotDiscardableComdats)

    Defined at line 2052 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • ConstantRange getUnsignedCountTrailingZerosRange (const APInt & Lower, const APInt & Upper)

    Defined at line 2053 of file llvm/lib/IR/ConstantRange.cpp

  • StringRef parseScalarValue (StringRef UnquotedValue, SmallVectorImpl<char> & Storage, StringRef LookupChars, function UnescapeCallback)

    parseScalarValue - A common parsing routine for all flow scalar styles.

    It handles line break characters by itself, adds regular content characters

    to the result, and forwards escaped sequences to the provided routine for

    the style-specific processing.

    Parameters

    UnquotedValue - An input value without quotation marks.
    Storage - A storage for the result if the input value is multiline or contains escaped characters.
    LookupChars - A set of special characters to search in the input string. Should include line break characters and the escape character specific for the processing scalar style, if any.
    UnescapeCallback - This is called when the escape character is found in the input.

    Defined at line 2054 of file llvm/lib/Support/YAMLParser.cpp

  • Instruction * convertFSqrtDivIntoFMul (CallInst * CI, Instruction * X, const SmallPtrSetImpl<Instruction *> & R1, const SmallPtrSetImpl<Instruction *> & R2, InstCombiner::BuilderTy & B, InstCombinerImpl * IC)

    Change

    X = 1/sqrt(a)

    R1 = X * X

    R2 = a * X

    TO

    FDiv = 1/a

    FSqrt = sqrt(a)

    FMul = FDiv * FSqrt

    Replace Uses Of R1 With FDiv

    Replace Uses Of R2 With FSqrt

    Replace Uses Of X With FMul

    Defined at line 2057 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • void LLVMSetSection (LLVMValueRef Global, const char * Section)

    Defined at line 2058 of file llvm/lib/IR/Core.cpp

  • bool parseDouble (Option & O, StringRef Arg, double & Value)

    parser

    <double

    >/parser

    <float

    > implementation

    Defined at line 2061 of file llvm/lib/Support/CommandLine.cpp

  • Value * convertValue (const DataLayout & DL, IRBuilderTy & IRB, Value * V, Type * NewTy)

    Generic routine to convert an SSA value to a value of a different

    type.

    This will try various different casting techniques, such as bitcasts,

    inttoptr, and ptrtoint casts. Use the

    predicate to test

    two types for viability with this routine.

    Defined at line 2061 of file llvm/lib/Transforms/Scalar/SROA.cpp

  •  LLVMGetVisibility (LLVMValueRef Global)

    Defined at line 2062 of file llvm/lib/IR/Core.cpp

  • optional getUntaggedStoreAssignmentInfo (const Instruction & I, const DataLayout & Layout)

    Defined at line 2062 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • optional getAssignmentInfoImpl (const DataLayout & DL, const Value * StoreDest, TypeSize SizeInBits)

    Collect constant properties (base, size, offset) of

    Return std::nullopt if any properties are not constants or the

    offset from the base pointer is negative.

    Defined at line 2063 of file llvm/lib/IR/DebugInfo.cpp

  • unsigned int getThreeSrcCommuteCase (uint64_t TSFlags, unsigned int SrcOpIdx1, unsigned int SrcOpIdx2)

    This determines which of three possible cases of a three source commute

    the source indexes correspond to taking into account any mask operands.

    All prevents commuting a passthru operand. Returns -1 if the commute isn't

    possible.

    Case 0 - Possible to commute the first and second operands.

    Case 1 - Possible to commute the first and third operands.

    Case 2 - Possible to commute the second and third operands.

    Defined at line 2064 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool doImportingForModuleForTest (Module & M, function_ref isPrevailing)

    Defined at line 2065 of file llvm/lib/Transforms/IPO/FunctionImport.cpp

  • bool checkMachOAndArchFlags (ObjectFile * O, StringRef Filename)

    checkMachOAndArchFlags() checks to see if the ObjectFile is a Mach-O file

    and if it is and there is a list of architecture flags is specified then

    check to make sure this Mach-O file is one of those architectures or all

    architectures were specified. If not then an error is generated and this

    routine returns false. Else it returns true.

    Defined at line 2066 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void LLVMSetVisibility (LLVMValueRef Global,  Viz)

    Defined at line 2067 of file llvm/lib/IR/Core.cpp

  • bool isRemOfLoopIncrementWithLoopInvariant (Instruction * Rem, const LoopInfo * LI, Value *& RemAmtOut, Value *& AddInstOut, Value *& AddOffsetOut, PHINode *& LoopIncrPNOut)

    Defined at line 2067 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • AttrKind getAttrFromCode (uint64_t Code)

    Returns Attribute::None on unrecognized codes.

    Defined at line 2067 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void insertDAGNode (SelectionDAG & DAG, SDValue Pos, SDValue N)

    Insert a node into the DAG at least before the Pos node's position. This

    will reposition the node as needed, and will assign it a node ID that is

    <

    =

    the Pos node's ID. Note that this does *not* preserve the uniqueness of node

    IDs! The selection DAG must no longer depend on their uniqueness when this

    is used.

    Defined at line 2068 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • Value * simplifyX86vpermv (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Attempt to convert vpermd/vpermps to shufflevector if the mask is constant.

    Defined at line 2068 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • void dumpArchiveMap (Archive * A, StringRef Filename)

    Defined at line 2071 of file llvm/tools/llvm-nm/llvm-nm.cpp

  •  LLVMGetDLLStorageClass (LLVMValueRef Global)

    Defined at line 2072 of file llvm/lib/IR/Core.cpp

  • bool simplifyKnownEVL (VPlan & Plan, ElementCount VF, PredicatedScalarEvolution & PSE)

    From the definition of llvm.experimental.get.vector.length,

    VPInstruction::ExplicitVectorLength(%AVL) = %AVL when %AVL

    <

    = VF.

    Defined at line 2072 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • unsigned int getConstrainedOpcode (Intrinsic::ID ID)

    TODO: Include ConstainedOps.def when all strict instructions are defined.

    Defined at line 2074 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • SmallVector expandBounds (const SmallVectorImpl<RuntimePointerCheck> & PointerChecks, Loop * L, Instruction * Loc, SCEVExpander & Exp, bool HoistRuntimeChecks)

    Turns a collection of checks into a collection of expanded upper and

    lower bounds for both pointers in the check.

    Defined at line 2075 of file llvm/lib/Transforms/Utils/LoopUtils.cpp

  • AllocaInst * getUnknownStore (const Instruction & I, const DataLayout & Layout)

    Defined at line 2075 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • bool parseRegMask (unsigned int Mask, bool & HasLR, bool & HasR11, unsigned int & Folded, int & IntRegs)

    Defined at line 2075 of file llvm/lib/MC/MCWin64EH.cpp

  • bool useActiveLaneMask (TailFoldingStyle Style)

    Defined at line 2076 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • bool detectShiftUntilLessThanIdiom (Loop * CurLoop, const DataLayout & DL, Intrinsic::ID & IntrinID, Value *& InitX, Instruction *& CntInst, PHINode *& CntPhi, Instruction *& DefX, APInt & Threshold)

    Return true if the idiom is detected in the loop.

    Additionally:

    1)

    is set to the instruction Counting Leading Zeros (CTLZ)

    or nullptr if there is no such.

    2)

    is set to the corresponding phi node

    or nullptr if there is no such.

    3)

    is set to the value whose CTLZ could be used.

    4)

    is set to the instruction calculating Loop exit condition.

    5)

    is set to the constant involved in the unsigned less-than

    comparison.

    The core idiom we are trying to detect is:

    Code

                                                    
                                                            if (x0 < 2)
                                                              goto loop-exit // the precondition of the loop
                                                            cnt0 = init-val
                                                            do {
                                                              x = phi (x0, x.next);   //PhiX
                                                              cnt = phi (cnt0, cnt.next)
                                                        
                                                              cnt.next = cnt + 1;
                                                               ...
                                                              x.next = x >> 1;   // DefX
                                                            } while (x >= 4)
                                                         loop-exit:
                                                    
                                                

    Defined at line 2076 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • void LLVMSetDLLStorageClass (LLVMValueRef Global,  Class)

    Defined at line 2077 of file llvm/lib/IR/Core.cpp

  • bool mayHaveRecursiveCallee (Function & F, bool AnyFunctionsAddressIsTaken)

    Determines if the function 'F' can be marked 'norecurse'.

    It returns true if any call within 'F' could lead to a recursive

    call back to 'F', and false otherwise.

    The 'AnyFunctionsAddressIsTaken' parameter is a module-wide flag

    that is true if any function's address is taken, or if any function

    has external linkage. This is used to determine the safety of

    external/library calls.

    Defined at line 2077 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void verifyFuncBFI (PGOUseFunc & Func, LoopInfo & LI, BranchProbabilityInfo & NBPI, uint64_t HotCountThreshold, uint64_t ColdCountThreshold)

    Compare the profile count values with BFI count values, and print out

    the non-matching ones.

    Defined at line 2077 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • bool getHexUint (const MIToken & Token, APInt & Result)

    Defined at line 2078 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • bool useActiveLaneMaskForControlFlow (TailFoldingStyle Style)

    Defined at line 2082 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  •  LLVMGetUnnamedAddress (LLVMValueRef Global)

    Defined at line 2082 of file llvm/lib/IR/Core.cpp

  • bool foldMaskAndShiftToExtract (SelectionDAG & DAG, SDValue N, uint64_t Mask, SDValue Shift, SDValue X, X86ISelAddressMode & AM)

    Transform "(X >> (8-C1)) & (0xff << C1)" to "((X >> 8) & 0xff) << C1" if

    safe. This allows us to convert the shift and and into an h-register

    extract and a scaled index. Returns false if the simplification is

    performed.

    Defined at line 2086 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • void dumpArchive (Archive * A, int & SymbolList, StringRef Filename, LLVMContext * ContextPtr)

    Defined at line 2087 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void replacePrepare (CallInst * Prepare, LazyCallGraph & CG, LazyCallGraph::SCC & C)

    Replace a call to llvm.coro.prepare.retcon.

    Defined at line 2087 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • Error addTestHarnesses (Session & S)

    Defined at line 2088 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • Value * upgradeX86BinaryIntrinsics (IRBuilder<> & Builder, CallBase & CI, Intrinsic::ID IID)

    Defined at line 2088 of file llvm/lib/IR/AutoUpgrade.cpp

  • void writeGenericDINode (raw_ostream & Out, const GenericDINode * N, AsmWriterContext & WriterCtx)

    Defined at line 2088 of file llvm/lib/IR/AsmWriter.cpp

  • bool EvaluateStaticConstructor (Function * F, const DataLayout & DL, TargetLibraryInfo * TLI)

    Evaluate static constructors in the function, if we can. Return true if we

    can, false otherwise.

    Defined at line 2088 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • Value * getIntToFPVal (Value * I2F, IRBuilderBase & B, unsigned int DstWidth)

    Return a properly extended integer (DstWidth bits wide) if the operation is

    an itofp.

    Defined at line 2092 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • void LLVMSetUnnamedAddress (LLVMValueRef Global,  UnnamedAddr)

    Defined at line 2094 of file llvm/lib/IR/Core.cpp

  • bool getUnsigned (const MIToken & Token, unsigned int & Result, ErrorCallbackType ErrCB)

    Defined at line 2095 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • Error printNoMatch (bool ExpectedMatch, const SourceMgr & SM, StringRef Prefix, SMLoc Loc, const Pattern & Pat, int MatchedCount, StringRef Buffer, Error MatchError, bool VerboseVerbose, std::vector<FileCheckDiag> * Diags)

    Returns either (1)

    if there was no error, or (2)

    if an error was reported, such as an expected match not

    found.

    Defined at line 2097 of file llvm/lib/FileCheck/FileCheck.cpp

  • size_t getOptionPrefixesSize ()

    Defined at line 2100 of file llvm/lib/Support/CommandLine.cpp

  • void addNoRecurseAttrs (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Defined at line 2100 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void ProcessMachO (StringRef Name, MachOObjectFile * MachOOF, StringRef ArchiveMemberName, StringRef ArchitectureName)

    ProcessMachO() is passed a single opened Mach-O file, which may be an

    archive member and or in a slice of a universal file. It prints the

    the file name and header info and then processes it according to the

    command line options.

    Defined at line 2100 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void createAndInsertBasicBlocks (DenseMap<Value *, BasicBlock *> & OldMap, DenseMap<Value *, BasicBlock *> & NewMap, Function * ParentFunc, Twine BaseName)

    Takes in a mapping,

    of ConstantValues to BasicBlocks, sorts keys,

    before creating a basic block for each

    and inserting into the new

    block. Each BasicBlock is named with the scheme "<basename>_<key_idx>".

    Parameters

    OldMap [in] - The mapping to base the new mapping off of.
    NewMap [out] - The output mapping using the keys of
    ParentFunc [in] - The function to put the new basic block in.
    BaseName [in] - The start of the BasicBlock names to be appended to by an index value.

    Defined at line 2101 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • bool isExplicitVecOuterLoop (Loop * OuterLp, OptimizationRemarkEmitter * ORE)

    Return true if

    is an outer loop annotated with hints for explicit

    vectorization. The loop needs to be annotated with #pragma omp simd

    simdlen(#) or #pragma clang vectorize(enable) vectorize_width(#). If the

    vector length information is not provided, vectorization is not considered

    explicit. Interleave hints are not allowed either. These limitations will be

    relaxed in the future.

    Please, note that we are currently forced to abuse the pragma 'clang

    vectorize' semantics. This pragma provides *auto-vectorization hints*

    (i.e., LV must check that vectorization is legal) whereas pragma 'omp simd'

    provides *explicit vectorization hints* (LV can bypass legal checks and

    assume that vectorization is legal). However, both hints are implemented

    using the same metadata (llvm.loop.vectorize, processed by

    LoopVectorizeHints). This will be fixed in the future when the native IR

    representation for pragma 'omp simd' is introduced.

    Defined at line 2101 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • bool translateRMRegister (MCInst & mcInst, InternalInstruction & insn)

    translateRMRegister - Translates a register stored in the R/M field of the

    ModR/M byte to its LLVM equivalent and appends it to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    insn - The internal instruction to extract the R/M field from.

    Returns

    - 0 on success; -1 otherwise

    Defined at line 2102 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • Value * simplifyX86vpermv3 (const IntrinsicInst & II, InstCombiner::BuilderTy & Builder)

    Attempt to convert vpermi2/vpermt2 to shufflevector if the mask is constant.

    Defined at line 2102 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • Error addObjects (Session & S, const std::map<unsigned int, JITDylib *> & IdxToJD, const DenseSet<unsigned int> & LazyLinkIdxs)

    Defined at line 2102 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • Value * upgradeX86Rotate (IRBuilder<> & Builder, CallBase & CI, bool IsRotateRight)

    Defined at line 2103 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool shouldPrintOption (StringRef Name, StringRef Description, const Option & O)

    Defined at line 2104 of file llvm/lib/Support/CommandLine.cpp

  • void writeDILocation (raw_ostream & Out, const DILocation * DL, AsmWriterContext & WriterCtx)

    Defined at line 2106 of file llvm/lib/IR/AsmWriter.cpp

  • LLVMBool LLVMHasUnnamedAddr (LLVMValueRef Global)

    Deprecated: Use LLVMGetUnnamedAddress instead.

    Defined at line 2107 of file llvm/lib/IR/Core.cpp

  • void emitDbgAssign (AssignmentInfo Info, Value * Val, Value * Dest, Instruction & StoreLikeInst, const VarRecord & VarRec, DIBuilder & DIB)

    Returns nullptr if the assignment shouldn't be attributed to this variable.

    Defined at line 2109 of file llvm/lib/IR/DebugInfo.cpp

  • void LLVMSetUnnamedAddr (LLVMValueRef Global, LLVMBool HasUnnamedAddr)

    Deprecated: Use LLVMSetUnnamedAddress instead.

    Defined at line 2111 of file llvm/lib/IR/Core.cpp

  • basic_string APIntToHexString (const APInt & AI)

    Defined at line 2112 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • bool MaySpeculate (const MachineInstr & MI, int & LaterRedefs)

    Defined at line 2112 of file llvm/lib/CodeGen/IfConversion.cpp

  • void initializePostRAMachineSinkingLegacyPassOnce (PassRegistry & Registry)

    Defined at line 2114 of file llvm/lib/CodeGen/MachineSink.cpp

  • DenseMap buildOverlapMapAndRecordDeclares (Function & Fn, FunctionVarLocsBuilder * FnVarLocs, const DenseSet<DebugAggregate> & VarsWithStackSlot, AssignmentTrackingLowering::UntaggedStoreAssignmentMap & UntaggedStoreVars, AssignmentTrackingLowering::UnknownStoreAssignmentMap & UnknownStoreVars, unsigned int & TrackedVariablesVectorSize)

    Build a map of {Variable x: Variables y} where all variable fragments

    contained within the variable fragment x are in set y. This means that

    y does not contain all overlaps because partial overlaps are excluded.

    While we're iterating over the function, add single location defs for

    dbg.declares to

    Variables that are interesting to this pass in are added to

    FnVarLocs->Variables first. TrackedVariablesVectorSize is set to the ID of

    the last interesting variable plus 1, meaning variables with ID 1

    (inclusive) to TrackedVariablesVectorSize (exclusive) are interesting. The

    subsequent variables are either stack homed or fully promoted.

    Finally, populate UntaggedStoreVars with a mapping of untagged stores to

    the stored-to variable fragments, and UnknownStoreVars with a mapping

    of untagged unknown stores to the stored-to variable aggregates.

    These tasks are bundled together to reduce the number of times we need

    to iterate over the function as they can be achieved together in one pass.

    Defined at line 2114 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • bool tryARMPackedUnwind (MCStreamer & streamer, WinEH::FrameInfo * info, uint32_t FuncLength)

    Defined at line 2115 of file llvm/lib/MC/MCWin64EH.cpp

  • int compareNames (Constant *const * A, Constant *const * B)

    Defined at line 2116 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • LLVMTypeRef LLVMGlobalGetValueType (LLVMValueRef Global)

    Returns the "value type" of a global value. This differs from the formal

    type of a global value which is always a pointer type.

    Defined at line 2117 of file llvm/lib/IR/Core.cpp

  • void ProfileIsAOpInit (FoldingSetNodeID & ID, const RecTy * CheckType, const Init * Expr)

    Defined at line 2117 of file llvm/lib/TableGen/Record.cpp

  • bool aliasWithRegsInLiveIn (MachineBasicBlock & MBB, Register Reg, const TargetRegisterInfo * TRI)

    Defined at line 2117 of file llvm/lib/CodeGen/MachineSink.cpp

  • void findUnwindDestinations (FunctionLoweringInfo & FuncInfo, const BasicBlock * EHPadBB, BranchProbability Prob, SmallVectorImpl<std::pair<MachineBasicBlock *, BranchProbability>> & UnwindDests)

    When an invoke or a cleanupret unwinds to the next EH pad, there are

    many places it could ultimately go. In the IR, we have a single unwind

    destination, but in the machine CFG, we enumerate all the possible blocks.

    This function skips over imaginary basic blocks that hold catchswitch

    instructions, and finds all the "real" machine

    basic block destinations. As those destinations may not be successors of

    EHPadBB, here we also calculate the edge probability to those destinations.

    The passed-in Prob is the edge probability to EHPadBB.

    Defined at line 2117 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • Value * getSalvageOpsForGEP (GetElementPtrInst * GEP, const DataLayout & DL, uint64_t CurrentLocOps, SmallVectorImpl<uint64_t> & Opcodes, SmallVectorImpl<Value *> & AdditionalValues)

    Defined at line 2118 of file llvm/lib/Transforms/Utils/Local.cpp

  • void dumpMachOUniversalBinaryMatchArchFlags (MachOUniversalBinary * UB, int & SymbolList, StringRef Filename, LLVMContext * ContextPtr)

    Defined at line 2118 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool sinkRecurrenceUsersAfterPrevious (VPFirstOrderRecurrencePHIRecipe * FOR, VPRecipeBase * Previous, VPDominatorTree & VPDT)

    Sink users of

    after the recipe defining the previous value

    of the recurrence.

    Defined at line 2119 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • template <typename K>
    void addAttributeImpl (SmallVectorImpl<Attribute> & Attrs, K Kind, Attribute Attr)

    Defined at line 2121 of file llvm/lib/IR/Attributes.cpp

  • ConstantRange getUnsignedPopCountRange (const APInt & Lower, const APInt & Upper)

    Defined at line 2121 of file llvm/lib/IR/ConstantRange.cpp

  • void writeDIAssignID (raw_ostream & Out, const DIAssignID * DL, AsmWriterContext & WriterCtx)

    Defined at line 2122 of file llvm/lib/IR/AsmWriter.cpp

  • void addNoReturnAttrs (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Set the noreturn function attribute if possible.

    Defined at line 2122 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void setUsedInitializer (GlobalVariable & V, const SmallPtrSetImpl<GlobalValue *> & Init)

    Defined at line 2122 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool replaceAllPrepares (Function * PrepareFn, LazyCallGraph & CG, LazyCallGraph::SCC & C)

    Defined at line 2123 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • basic_string scalarConstantToHexString (const Constant * C)

    Defined at line 2123 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • unsigned int LLVMGetAlignment (LLVMValueRef V)

    Obtain the preferred alignment of the value.

    Defined at line 2123 of file llvm/lib/IR/Core.cpp

  • MachineBasicBlock * getSingleLiveInSuccBB (MachineBasicBlock & CurBB, const SmallPtrSetImpl<MachineBasicBlock *> & SinkableBBs, Register Reg, const TargetRegisterInfo * TRI)

    Defined at line 2124 of file llvm/lib/CodeGen/MachineSink.cpp

  • MachineBasicBlock * createDedicatedExit (MachineBasicBlock * Loop, MachineBasicBlock * Exit, LiveIntervals & LIS)

    Create a dedicated exit for Loop. Exit is the original exit for Loop.

    If it is already dedicated exit, return it. Otherwise, insert a new

    block between them and return the new block.

    Defined at line 2125 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • void createSwitchStatement (Module & M, OutlinableGroup & OG, DenseMap<Value *, BasicBlock *> & EndBBs, std::vector<DenseMap<Value *, BasicBlock *>> & OutputStoreBBs)

    Create the switch statement for outlined function to differentiate between

    all the output blocks.

    For the outlined section, determine if an outlined block already exists that

    matches the needed stores for the extracted section.

    Parameters

    M [in] - The module we are outlining from.
    OG [in] - The group of regions to be outlined.
    EndBBs [in] - The final blocks of the extracted function.
    OutputStoreBBs [in,out] - The existing output blocks.

    Defined at line 2126 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • bool isShuffleExtractingFromLHS (ShuffleVectorInst & SVI, ArrayRef Mask)

    Returns true if the shuffle is extracting a contiguous range of values from

    LHS, for example:

    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

    Input: |AA|BB|CC|DD|EE|FF|GG|HH|II|JJ|KK|LL|MM|NN|OO|PP|

    Shuffles to: |EE|FF|GG|HH|

    +--+--+--+--+

    Defined at line 2128 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • void writeDISubrange (raw_ostream & Out, const DISubrange * N, AsmWriterContext & WriterCtx)

    Defined at line 2128 of file llvm/lib/IR/AsmWriter.cpp

  • void collectSupportedLoops (Loop & L, LoopInfo * LI, OptimizationRemarkEmitter * ORE, SmallVectorImpl<Loop *> & V)

    Defined at line 2129 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • Value * upgradeX86vpcom (IRBuilder<> & Builder, CallBase & CI, unsigned int Imm, bool IsSigned)

    Defined at line 2129 of file llvm/lib/IR/AutoUpgrade.cpp

  • template <typename Ty>
    SDValue getFixedOrScalableQuantity (SelectionDAG & DAG, const SDLoc & DL, EVT VT, Ty Quantity)

    Defined at line 2133 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool foldMaskedShiftToScaledMask (SelectionDAG & DAG, SDValue N, X86ISelAddressMode & AM)

    Transforms "(X << C1) & C2" to "(X & (C2>>C1)) << C1" if safe and if this

    allows us to fold the shift into this addressing mode. Returns false if the

    transform succeeded.

    Defined at line 2133 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • void addPrepareFunction (const Module & M, SmallVectorImpl<Function *> & Fns, StringRef Name)

    Defined at line 2136 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • bool allPathsGoThroughCold (Function & F)

    Defined at line 2136 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool simplifyX86VPERMMask (Instruction * II, bool IsBinary, InstCombiner & IC)

    Simplify VPERMV/VPERMV3 mask - only demand the active index bits.

    Defined at line 2138 of file llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

  • void inlineRetainOrClaimRVCalls (CallBase & CB, ARCInstKind RVCallKind, const SmallVectorImpl<ReturnInst *> & Returns)

    An operand bundle "clang.arc.attachedcall" on a call indicates the call

    result is implicitly consumed by a call to retainRV or claimRV immediately

    after the call. This function inlines the retainRV/claimRV calls.

    There are three cases to consider:

    1. If there is a call to autoreleaseRV that takes a pointer to the returned

    object in the callee return block, the autoreleaseRV call and the

    retainRV/claimRV call in the caller cancel out. If the call in the caller

    is a claimRV call, a call to objc_release is emitted.

    2. If there is a call in the callee return block that doesn't have operand

    bundle "clang.arc.attachedcall", the operand bundle on the original call

    is transferred to the call in the callee.

    3. Otherwise, a call to objc_retain is inserted if the call in the caller is

    a retainRV call.

    Defined at line 2140 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • void commuteVPTERNLOG (MachineInstr & MI, unsigned int SrcOpIdx1, unsigned int SrcOpIdx2)

    Defined at line 2141 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool translateRMMemory (MCInst & mcInst, InternalInstruction & insn, const MCDisassembler * Dis, bool ForceSIB)

    translateRMMemory - Translates a memory operand stored in the Mod and R/M

    fields of an internal instruction (and possibly its SIB byte) to a memory

    operand in LLVM's format, and appends it to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    insn - The instruction to extract Mod, R/M, and SIB fields from.
    ForceSIB - The instruction must use SIB.

    Returns

    - 0 on success; nonzero otherwise

    Defined at line 2141 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • void patchAndReplaceAllUsesWith (Instruction * I, Value * Repl)

    Defined at line 2144 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • int CreateNewABI (Function & F, coro::Shape & S, std::function<bool (Instruction &)> IsMatCallback, const int GenCustomABIs)

    Defined at line 2144 of file llvm/lib/Transforms/Coroutines/CoroSplit.cpp

  • uint64_t getDwarfOpForBinOp (BinaryOps Opcode)

    Defined at line 2144 of file llvm/lib/Transforms/Utils/Local.cpp

  • void LLVMSetAlignment (LLVMValueRef V, unsigned int Bytes)

    Set the preferred alignment of the value.

    Defined at line 2145 of file llvm/lib/IR/Core.cpp

  • Expected getObjectFileInterfaceHidden (ExecutionSession & ES, MemoryBufferRef ObjBuffer)

    Defined at line 2147 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • MachineBasicBlock * getSingleLiveInSuccBB (MachineBasicBlock & CurBB, const SmallPtrSetImpl<MachineBasicBlock *> & SinkableBBs, ArrayRef<Register> DefedRegsInCopy, const TargetRegisterInfo * TRI)

    Defined at line 2151 of file llvm/lib/CodeGen/MachineSink.cpp

  • void writeDIGenericSubrange (raw_ostream & Out, const DIGenericSubrange * N, AsmWriterContext & WriterCtx)

    Defined at line 2152 of file llvm/lib/IR/AsmWriter.cpp

  • bool isVectorPromotionViableForSlice (Partition & P, const Slice & S, VectorType * Ty, uint64_t ElementSize, const DataLayout & DL, unsigned int VScale)

    Test whether the given slice use can be promoted to a vector.

    This function is called to test each entry in a partition which is slated

    for a single slice.

    Defined at line 2152 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool annotateAllFunctions (Module & M, StringRef ProfileFileName, StringRef ProfileRemappingFileName, vfs::FileSystem & FS, function_ref<TargetLibraryInfo &(Function &)> LookupTLI, function_ref<BranchProbabilityInfo *(Function &)> LookupBPI, function_ref<BlockFrequencyInfo *(Function &)> LookupBFI, function_ref<LoopInfo *(Function &)> LookupLI, ProfileSummaryInfo * PSI, bool IsCS)

    Defined at line 2152 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • Instruction * foldICmpUSubSatWithAndForMostSignificantBitCmp (SelectInst & SI, ICmpInst * ICI, InstCombiner::BuilderTy & Builder)

    Folds:

    %a_sub = call

    .usub.sat(x, IntConst1)

    %b_sub = call

    .usub.sat(y, IntConst2)

    %or = or %a_sub, %b_sub

    %cmp = icmp eq %or, 0

    %sel = select %cmp, 0, MostSignificantBit

    into:

    %a_sub' = usub.sat(x, IntConst1 - MostSignificantBit)

    %b_sub' = usub.sat(y, IntConst2 - MostSignificantBit)

    %or = or %a_sub', %b_sub'

    %and = and %or, MostSignificantBit

    Likewise, for vector arguments as well.

    Defined at line 2154 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool foldURemOfLoopIncrement (Instruction * Rem, const DataLayout * DL, const LoopInfo * LI, SmallPtrSet<BasicBlock *, 32> & FreshBBs, bool IsHuge)

    Try to transform:

    for(i = Start; i

    <

    End; ++i)

    Rem = (i nuw+ IncrLoopInvariant) u% RemAmtLoopInvariant;

    ->

    Rem = (Start nuw+ IncrLoopInvariant) % RemAmtLoopInvariant;

    for(i = Start; i

    <

    End; ++i, ++rem)

    Rem = rem == RemAmtLoopInvariant ? 0 : Rem;

    Defined at line 2156 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • SmallVector getSearchPathsFromEnvVar (Session & S)

    Defined at line 2157 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • BinopElts getAlternateBinop (BinaryOperator * BO, const DataLayout & DL)

    Binops may be transformed into binops with different opcodes and operands.

    Reverse the usual canonicalization to enable folds with the non-canonical

    form of the binop. If a transform is possible, return the elements of the

    new binop. If not, return invalid elements.

    Defined at line 2159 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • SDValue getInputChainForNode (SDNode * N)

    Given a node, return its input chain if it has one, otherwise return a null

    sd operand.

    Defined at line 2160 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • unsigned int getConvOpcode (Intrinsic::ID ID)

    Defined at line 2161 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • Value * emitTransformedIndex (IRBuilderBase & B, Value * Index, Value * StartValue, Value * Step, InductionKind InductionKind, const BinaryOperator * InductionBinOp)

    Compute the transformed value of Index at offset StartValue using step

    StepValue.

    For integer induction, returns StartValue + Index * StepValue.

    For pointer induction, returns StartValue[Index * StepValue].

    FIXME: The newly created binary instructions should contain nsw/nuw

    flags, which can be found from the original scalar operations.

    Defined at line 2165 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • LLVMValueMetadataEntry * LLVMGlobalCopyAllMetadata (LLVMValueRef Value, size_t * NumEntries)

    Retrieves an array of metadata entries representing the metadata attached to

    this value. The caller is responsible for freeing this array by calling

    Defined at line 2167 of file llvm/lib/IR/Core.cpp

  • void clearKillFlags (MachineInstr * MI, MachineBasicBlock & CurBB, const SmallVectorImpl<unsigned int> & UsedOpsInCopy, const LiveRegUnits & UsedRegUnits, const TargetRegisterInfo * TRI)

    Defined at line 2167 of file llvm/lib/CodeGen/MachineSink.cpp

  • Value * upgradeX86ConcatShift (IRBuilder<> & Builder, CallBase & CI, bool IsShiftRight, bool ZeroMask)

    Defined at line 2168 of file llvm/lib/IR/AutoUpgrade.cpp

  • Expected LoadLibraryWeak (Session & S, StringRef Path)

    Defined at line 2169 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • void collectRegDefs (const MachineInstr & MI, int & Regs, const TargetRegisterInfo * TRI)

    Collect all register defines (including aliases) for the given instruction.

    Defined at line 2170 of file llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp

  • bool isCommutableVPERMV3Instruction (unsigned int Opcode)

    Returns true if this is a VPERMI2 or VPERMT2 instruction that can be

    commuted.

    Defined at line 2173 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void handleSSAValueOperands (uint64_t CurrentLocOps, SmallVectorImpl<uint64_t> & Opcodes, SmallVectorImpl<Value *> & AdditionalValues, Instruction * I)

    Defined at line 2174 of file llvm/lib/Transforms/Utils/Local.cpp

  • MemberAccess translateAccessFlags (unsigned int RecordTag, unsigned int Flags)

    Defined at line 2174 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • bool detectPopcountIdiom (Loop * CurLoop, BasicBlock * PreCondBB, Instruction *& CntInst, PHINode *& CntPhi, Value *& Var)

    Return true iff the idiom is detected in the loop.

    Additionally:

    1)

    is set to the instruction counting the population bit.

    2)

    is set to the corresponding phi node.

    3)

    is set to the value whose population bits are being counted.

    The core idiom we are trying to detect is:

    Code

                                                    
                                                            if (x0 != 0)
                                                              goto loop-exit // the precondition of the loop
                                                            cnt0 = init-val;
                                                            do {
                                                               x1 = phi (x0, x2);
                                                               cnt1 = phi(cnt0, cnt2);
                                                        
                                                               cnt2 = cnt1 + 1;
                                                                ...
                                                               x2 = x1 & (x1 - 1);
                                                                ...
                                                            } while(x != 0);
                                                        
                                                         loop-exit:
                                                    
                                                

    Defined at line 2174 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • template <typename CallableT>
    void visitDomSubTree (DominatorTree & DT, BasicBlock * BB, CallableT Callable)

    Helper to visit a dominator subtree, invoking a callable on each node.

    Returning false at any point will stop walking past that node of the tree.

    Defined at line 2175 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool hoistPreviousBeforeFORUsers (VPFirstOrderRecurrencePHIRecipe * FOR, VPRecipeBase * Previous, VPDominatorTree & VPDT)

    Try to hoist

    and its operands before all users of

    Defined at line 2175 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void LLVMGlobalSetMetadata (LLVMValueRef Global, unsigned int Kind, LLVMMetadataRef MD)

    Sets a metadata attachment, erasing the existing metadata attachment if

    it already exists for the given kind.

    Defined at line 2198 of file llvm/lib/IR/Core.cpp

  • void LLVMGlobalAddMetadata (LLVMValueRef Global, unsigned int Kind, LLVMMetadataRef MD)

    Adds a metadata attachment.

    Defined at line 2203 of file llvm/lib/IR/Core.cpp

  • void LLVMGlobalEraseMetadata (LLVMValueRef Global, unsigned int Kind)

    Erases a metadata attachment of the given kind if it exists.

    Defined at line 2208 of file llvm/lib/IR/Core.cpp

  • void LLVMGlobalClearMetadata (LLVMValueRef Global)

    Removes all metadata attachments from this value.

    Defined at line 2212 of file llvm/lib/IR/Core.cpp

  • void LLVMGlobalAddDebugInfo (LLVMValueRef Global, LLVMMetadataRef GVE)

    Add debuginfo metadata to this global.

    Defined at line 2216 of file llvm/lib/IR/Core.cpp

  • void LLVMDisposeValueMetadataEntries (LLVMValueMetadataEntry * Entries)

    Destroys value metadata entries.

    Defined at line 2194 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMValueMetadataEntriesGetKind (LLVMValueMetadataEntry * Entries, unsigned int Index)

    Returns the kind of a value metadata entry at a specific index.

    Defined at line 2179 of file llvm/lib/IR/Core.cpp

  • Instruction * reassociateForUses (BinaryOperator & BO, InstCombinerImpl::BuilderTy & Builder)

    Try to reassociate a pair of binops so that values with one use only are

    part of the same instruction. This may enable folds that are limited with

    multi-use restrictions and makes it more likely to match other patterns that

    are looking for a common operand.

    Defined at line 2179 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • Error reportMatchResult (bool ExpectedMatch, const SourceMgr & SM, StringRef Prefix, SMLoc Loc, const Pattern & Pat, int MatchedCount, StringRef Buffer, MatchResult MatchResult, const FileCheckRequest & Req, std::vector<FileCheckDiag> * Diags)

    Returns either (1)

    if there was no error, or (2)

    if an error was reported.

    Defined at line 2180 of file llvm/lib/FileCheck/FileCheck.cpp

  • void commuteShuffle (SDValue & N1, SDValue & N2, MutableArrayRef<int> M)

    Swaps the values of N1 and N2. Swaps all indices in the shuffle mask M that

    point at N1 to point at N2 and indices that point at N2 to point at N1.

    Defined at line 2181 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void ProfileExistsOpInit (FoldingSetNodeID & ID, const RecTy * CheckType, const Init * Expr)

    Defined at line 2181 of file llvm/lib/TableGen/Record.cpp

  • Error addLibraries (Session & S, const std::map<unsigned int, JITDylib *> & IdxToJD, const DenseSet<unsigned int> & LazyLinkIdxs)

    Defined at line 2181 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • uint64_t GetMemOpSize (Value * V)

    Defined at line 2182 of file llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  • bool replacingOperandWithVariableIsCheap (const Instruction * I, int OpIdx)

    TODO: Refine this. This should avoid cases like turning constant memcpy sizes

    into variables.

    Defined at line 2183 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void addColdAttrs (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Set the cold function attribute if possible.

    Defined at line 2183 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • LLVMMetadataRef LLVMValueMetadataEntriesGetMetadata (LLVMValueMetadataEntry * Entries, unsigned int Index)

    Returns the underlying metadata node of a value metadata entry at a

    specific index.

    Defined at line 2186 of file llvm/lib/IR/Core.cpp

  • Value * getSalvageOpsForBinOp (BinaryOperator * BI, uint64_t CurrentLocOps, SmallVectorImpl<uint64_t> & Opcodes, SmallVectorImpl<Value *> & AdditionalValues)

    Defined at line 2186 of file llvm/lib/Transforms/Utils/Local.cpp

  • MethodOptions translateMethodOptionFlags (const DISubprogram * SP)

    Defined at line 2187 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void updateLiveIn (MachineInstr * MI, MachineBasicBlock * SuccBB, const SmallVectorImpl<unsigned int> & UsedOpsInCopy, const SmallVectorImpl<Register> & DefedRegsInCopy)

    Defined at line 2187 of file llvm/lib/CodeGen/MachineSink.cpp

  • const Comdat * getWasmComdat (const GlobalValue * GV)

    ===----------------------------------------------------------------------===//

    Wasm

    ===----------------------------------------------------------------------===//

    Defined at line 2194 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • Instruction * foldSelectShuffleOfSelectShuffle (ShuffleVectorInst & Shuf)

    A select shuffle of a select shuffle with a shared operand can be reduced

    to a single select shuffle. This is an obvious improvement in IR, and the

    backend is expected to lower select shuffles efficiently.

    Defined at line 2194 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • unsigned int CountNumNewlinesBetween (StringRef Range, const char *& FirstNewLine)

    Counts the number of newlines in the specified range.

    Defined at line 2195 of file llvm/lib/FileCheck/FileCheck.cpp

  • bool dumpMachOUniversalBinaryMatchHost (MachOUniversalBinary * UB, int & SymbolList, StringRef Filename, LLVMContext * ContextPtr)

    Returns true If the binary contains a slice that matches the host

    architecture, or false otherwise.

    Defined at line 2195 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • MethodKind translateMethodKindFlags (const DISubprogram * SP, bool Introduced)

    Defined at line 2196 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • bool canSinkInstructions (ArrayRef Insts, DenseMap<const Use *, SmallVector<Value *, 4>> & PHIOperands)

    All instructions in Insts belong to different blocks that all unconditionally

    branch to a common successor. Analyze each instruction and return true if it

    would be possible to sink them into their successor, creating one common

    instruction instead. For every value that would be required to be provided by

    PHI node (because an operand varies in each input block), add to PHIOperands.

    Defined at line 2196 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool hasRegisterDependency (MachineInstr * MI, SmallVectorImpl<unsigned int> & UsedOpsInCopy, SmallVectorImpl<Register> & DefedRegsInCopy, LiveRegUnits & ModifiedRegUnits, LiveRegUnits & UsedRegUnits)

    Defined at line 2198 of file llvm/lib/CodeGen/MachineSink.cpp

  • void postUnswitch (Loop & L, LPMUpdater & U, StringRef LoopName, bool CurrentLoopValid, bool PartiallyInvariant, bool InjectedCondition, ArrayRef NewLoops)

    Defined at line 2198 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void writeDIEnumerator (raw_ostream & Out, const DIEnumerator * N, AsmWriterContext & )

    Defined at line 2200 of file llvm/lib/IR/AsmWriter.cpp

  • bool functionWillReturn (const Function & F)

    Defined at line 2200 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • Value * upgradeMaskedStore (IRBuilder<> & Builder, Value * Ptr, Value * Data, Value * Mask, bool Aligned)

    Defined at line 2201 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool isLiteralImm (const InstructionPattern & P, unsigned int OpIdx)

    Defined at line 2202 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • bool parseGlobalValue (const MIToken & Token, PerFunctionMIParsingState & PFS, GlobalValue *& GV, ErrorCallbackType ErrCB)

    Defined at line 2203 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • unsigned int getWasmSectionFlags (SectionKind K, bool Retain)

    Defined at line 2207 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • bool isImportedFunction (const MachineOperand & MO)

    Does the given operand refer to a DLLIMPORT function?

    Defined at line 2208 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • void writeDIBasicType (raw_ostream & Out, const DIBasicType * N, AsmWriterContext & WriterCtx)

    Defined at line 2212 of file llvm/lib/IR/AsmWriter.cpp

  • Instruction * canonicalizeLogicFirst (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Match

    (X + C2) | C

    (X + C2) ^ C

    (X + C2)

    &

    C

    and convert to do the bitwise logic first:

    (X | C) + C2

    (X ^ C) + C2

    (X

    &

    C) + C2

    iff bits affected by logic op are lower than last bit affected by math op

    Defined at line 2212 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool isCallToCFGuardFunction (const MachineInstr * MI)

    Is the given instruction a call to a CFGuard function?

    Defined at line 2213 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • TypeRecordKind getRecordKind (const DICompositeType * Ty)

    Defined at line 2216 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void insertUseHolderAfter (CallBase * Call, ArrayRef Values, SmallVectorImpl<CallInst *> & Holders)

    Insert holders so that each Value is obviously live through the entire

    lifetime of the call.

    Defined at line 2218 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool hasUseOtherThanLLVMUsed (GlobalAlias & GA, const LLVMUsed & U)

    Defined at line 2219 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • Value * upgradeMaskedLoad (IRBuilder<> & Builder, Value * Ptr, Value * Passthru, Value * Mask, bool Aligned)

    Defined at line 2219 of file llvm/lib/IR/AutoUpgrade.cpp

  • void fillOverallFunction (Module & M, OutlinableGroup & CurrentGroup, std::vector<DenseMap<Value *, BasicBlock *>> & OutputStoreBBs, std::vector<Function *> & FuncsToRemove, const DenseMap<Value *, Value *> & OutputMappings)

    Fill the new function that will serve as the replacement function for all of

    the extracted regions of a certain structure from the first region in the

    list of regions. Replace this first region's extracted function with the

    new overall function.

    Parameters

    M [in] - The module we are outlining from.
    CurrentGroup [in] - The group of regions to be outlined.
    OutputStoreBBs [in,out] - The output blocks for each different set of stores needed for the different functions.
    FuncsToRemove [in,out] - Extracted functions to erase from module once outlining is complete.
    OutputMappings [in] - Extracted functions to erase from module once outlining is complete.

    Defined at line 2219 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • uint64_t getDwarfOpForIcmpPred (Predicate Pred)

    Defined at line 2220 of file llvm/lib/Transforms/Utils/Local.cpp

  • LLVMValueRef LLVMAddGlobal (LLVMModuleRef M, LLVMTypeRef Ty, const char * Name)

    This group contains functions that operate on global variable values.

    @

    {

    Defined at line 2223 of file llvm/lib/IR/Core.cpp

  • bool hasJumpTableInfoInBlock (const llvm::MachineInstr * MI)

    Does the containing block for the given instruction contain any jump table

    info (indicating that the block is a dispatch for a jump table)?

    Defined at line 2223 of file llvm/lib/Target/X86/X86MCInstLower.cpp

  • void printUnknownCPUType (uint32_t cputype, uint32_t cpusubtype)

    printUnknownCPUType() helps print_fat_headers for unknown CPU's.

    Defined at line 2224 of file llvm/tools/llvm-objdump/MachODump.cpp

  • std::pair<const MachineInstr *, bool> findPrologueEndLoc (const MachineFunction * MF)

    Returns the position where we should place prologue_end, potentially nullptr,

    which means "no good place to put prologue_end". Returns true in the second

    return value if there are no setup instructions in this function at all,

    meaning we should not emit a start-of-function linetable entry, because it

    would be zero-lengthed.

    Defined at line 2224 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • bool foldMaskAndShiftToScale (SelectionDAG & DAG, SDValue N, uint64_t Mask, SDValue Shift, SDValue X, X86ISelAddressMode & AM)

    Implement some heroics to detect shifts of masked values where the mask can

    be replaced by extending the shift and undoing that in the addressing mode

    scale. Patterns such as (shl (srl x, c1), c2) are canonicalized into (and

    (srl x, SHIFT), MASK) by DAGCombines that don't know the shl can be done in

    the addressing mode. This results in code such as:

    int f(short *y, int *lookup_table) {

    ...

    return *y + lookup_table[*y >> 11];

    }

    Turning into:

    movzwl (%rdi), %eax

    movl %eax, %ecx

    shrl $11, %ecx

    addl (%rsi,%rcx,4), %eax

    Instead of:

    movzwl (%rdi), %eax

    movl %eax, %ecx

    shrl $9, %ecx

    andl $124, %rcx

    addl (%rsi,%rcx), %eax

    Note that this function assumes the mask is provided as a mask *after* the

    value is shifted. The input chain may or may not match that, but computing

    such a mask is trivial.

    Defined at line 2225 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • Constant * getFoldedCast (CastOps opc, Constant * C, Type * Ty, bool OnlyIfReduced)

    This is a utility function to handle folding of casts and lookup of the

    cast in the ExprConstants map. It is used by the various get* methods below.

    Defined at line 2226 of file llvm/lib/IR/Constants.cpp

  • VectorType * checkVectorTypesForPromotion (Partition & P, const DataLayout & DL, SmallVectorImpl<VectorType *> & CandidateTys, bool HaveCommonEltTy, Type * CommonEltTy, bool HaveVecPtrTy, bool HaveCommonVecPtrTy, VectorType * CommonVecPtrTy, unsigned int VScale)

    Test whether any vector type in

    is viable for promotion.

    This implements the necessary checking for

    over

    all slices of the alloca for the given VectorType.

    Defined at line 2226 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • LLVMValueRef LLVMAddGlobalInAddressSpace (LLVMModuleRef M, LLVMTypeRef Ty, const char * Name, unsigned int AddressSpace)

    Defined at line 2228 of file llvm/lib/IR/Core.cpp

  • void writeDIFixedPointType (raw_ostream & Out, const DIFixedPointType * N, AsmWriterContext & WriterCtx)

    Defined at line 2229 of file llvm/lib/IR/AsmWriter.cpp

  • ClassOptions getCommonClassOptions (const DICompositeType * Ty)

    Return ClassOptions that should be present on both the forward declaration

    and the defintion of a tag type.

    Defined at line 2229 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void addWillReturn (const SCCNodeSet & SCCNodes, SmallPtrSet<Function *, 8> & Changed)

    Set the willreturn function attribute if possible.

    Defined at line 2230 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool pred_L (int & NodeOrder, SmallSetVector<SUnit *, 8> & Preds, SwingSchedulerDDG * DDG, const NodeSet * S)

    Compute the Pred_L(O) set, as defined in the paper. The set is defined

    as the predecessors of the elements of NodeOrder that are not also in

    NodeOrder.

    Defined at line 2230 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • void printCPUType (uint32_t cputype, uint32_t cpusubtype)

    printCPUType() helps print_fat_headers by printing the cputype and

    pusubtype (symbolically for the one's it knows about).

    Defined at line 2231 of file llvm/tools/llvm-objdump/MachODump.cpp

  • unsigned int getCommutedVPERMV3Opcode (unsigned int Opcode)

    Returns commuted opcode for VPERMI2 and VPERMT2 instructions by switching

    from the I opcode to the T opcode and vice versa.

    Defined at line 2232 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • pair remapIndices (Function & Caller, BasicBlock * StartBB, PGOContextualProfile & CtxProf, uint32_t CalleeCounters, uint32_t CalleeCallsites)

    In contextual profiling, when an inline succeeds, we want to remap the

    indices of the callee into the index space of the caller. We can't just leave

    them as-is because the same callee may appear in other places in this caller

    (other callsites), and its (callee's) counters and sub-contextual profile

    tree would be potentially different.

    Not all BBs of the callee may survive the opportunistic DCE InlineFunction

    does (same goes for callsites in the callee).

    We will return a pair of vectors, one for basic block IDs and one for

    callsites. For such a vector V, V[Idx] will be -1 if the callee

    instrumentation with index Idx did not survive inlining, and a new value

    otherwise.

    This function will update the caller's instrumentation intrinsics

    accordingly, mapping indices as described above. We also replace the "name"

    operand because we use it to distinguish between "own" instrumentation and

    "from callee" instrumentation when performing the traversal of the CFG of the

    caller. We traverse depth-first from the callsite's BB and up to the point we

    hit BBs owned by the caller.

    The return values will be then used to update the contextual

    profile. Note: we only update the "name" and "index" operands in the

    instrumentation intrinsics, we leave the hash and total nr of indices as-is,

    it's not worth updating those.

    Defined at line 2234 of file llvm/lib/Transforms/Utils/InlineFunction.cpp

  • bool mayHaveOtherReferences (GlobalValue & GV, const LLVMUsed & U)

    Defined at line 2235 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • bool isReplicationMaskWithParams (ArrayRef Mask, int ReplicationFactor, int VF)

    Defined at line 2235 of file llvm/lib/IR/Instructions.cpp

  • Instruction * foldSubOfMinMax (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Defined at line 2235 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • void unswitchNontrivialInvariants (Loop & L, Instruction & TI, ArrayRef Invariants, IVConditionInfo & PartialIVInfo, DominatorTree & DT, LoopInfo & LI, AssumptionCache & AC, ScalarEvolution * SE, MemorySSAUpdater * MSSAU, LPMUpdater & LoopUpdater, bool InsertFreeze, bool InjectedCondition)

    Defined at line 2235 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • LLVMValueRef LLVMGetNamedGlobal (LLVMModuleRef M, const char * Name)

    Defined at line 2237 of file llvm/lib/IR/Core.cpp

  • Register peekThroughBitcast (Register Reg, const MachineRegisterInfo & MRI)

    Defined at line 2238 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • bool CollectAddOperandsWithScales (int & M, SmallVectorImpl<const SCEV *> & NewOps, APInt & AccumulatedConstant, ArrayRef Ops, const APInt & Scale, ScalarEvolution & SE)

    Process the given Ops list, which is a list of operands to be added under

    the given scale, update the given map. This is a helper function for

    getAddRecExpr. As an example of what it does, given a sequence of operands

    that would form an add expression like this:

    m + n + 13 + (A * (o + p + (B * (q + m + 29)))) + r + (-1 * r)

    where A and B are constants, update the map with these values:

    (m, 1+A*B), (n, 1), (o, A), (p, A), (q, A*B), (r, 0)

    and add 13 + A*B*29 to AccumulatedConstant.

    This will allow getAddRecExpr to produce this:

    13+A*B*29 + n + (m * (1+A*B)) + ((o + p) * A) + (q * A*B)

    This form often exposes folding opportunities that are hidden in

    the original operand list.

    Return true iff it appears that any interesting folding opportunities

    may be exposed. This helps getAddRecExpr short-circuit extra work in

    the common case where no interesting opportunities are present, and

    is also used as a check to avoid infinite recursion.

    Defined at line 2239 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • Value * upgradeAbs (IRBuilder<> & Builder, CallBase & CI)

    Defined at line 2240 of file llvm/lib/IR/AutoUpgrade.cpp

  • LLVMValueRef LLVMGetNamedGlobalWithLength (LLVMModuleRef M, const char * Name, size_t Length)

    Defined at line 2241 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetFirstGlobal (LLVMModuleRef M)

    Defined at line 2246 of file llvm/lib/IR/Core.cpp

  • LLVMMetadataRef LLVMMDStringInContext2 (LLVMContextRef C, const char * Str, size_t SLen)

    Create an MDString value from a given string value.

    The MDString value does not take ownership of the given string, it remains

    the responsibility of the caller to free it.

    Defined at line 1285 of file llvm/lib/IR/Core.cpp

  • LLVMMetadataRef LLVMMDNodeInContext2 (LLVMContextRef C, LLVMMetadataRef * MDs, size_t Count)

    Create an MDNode value with the given array of operands.

    Defined at line 1290 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMMetadataAsValue (LLVMContextRef C, LLVMMetadataRef MD)

    Obtain a Metadata as a Value.

    Defined at line 1337 of file llvm/lib/IR/Core.cpp

  • LLVMMetadataRef LLVMValueAsMetadata (LLVMValueRef Val)

    Obtain a Value as a Metadata.

    Defined at line 1341 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetMDString (LLVMValueRef V, unsigned int * Length)

    Obtain the underlying string from a MDString value.

    Parameters

    V Instance to obtain string from.
    Length Memory address which will hold length of returned string.

    Returns

    String data in MDString.

    Defined at line 1350 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetMDNodeNumOperands (LLVMValueRef V)

    Obtain the number of operands from an MDNode value.

    Parameters

    V MDNode to get number of operands from.

    Returns

    Number of operands of the MDNode.

    Defined at line 1360 of file llvm/lib/IR/Core.cpp

  • void LLVMGetMDNodeOperands (LLVMValueRef V, LLVMValueRef * Dest)

    Obtain the given MDNode's operands.

    The passed LLVMValueRef pointer should point to enough memory to hold all of

    the operands of the given MDNode (see LLVMGetMDNodeNumOperands) as

    LLVMValueRefs. This memory will be populated with the LLVMValueRefs of the

    MDNode's operands.

    Parameters

    V MDNode to get the operands from.
    Dest Destination array for operands.

    Defined at line 1415 of file llvm/lib/IR/Core.cpp

  • void LLVMReplaceMDNodeOperandWith (LLVMValueRef V, unsigned int Index, LLVMMetadataRef Replacement)

    Replace an operand at a specific index in a llvm::MDNode value.

    Defined at line 1428 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMMDStringInContext (LLVMContextRef C, const char * Str, unsigned int SLen)

    Deprecated: Use LLVMMDStringInContext2 instead.

    Defined at line 1295 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMMDString (const char * Str, unsigned int SLen)

    Deprecated: Use LLVMMDStringInContext2 instead.

    Defined at line 1302 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMMDNodeInContext (LLVMContextRef C, LLVMValueRef * Vals, unsigned int Count)

    Deprecated: Use LLVMMDNodeInContext2 instead.

    Defined at line 1306 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMMDNode (LLVMValueRef * Vals, unsigned int Count)

    Deprecated: Use LLVMMDNodeInContext2 instead.

    Defined at line 1333 of file llvm/lib/IR/Core.cpp

  • Instruction * foldSelectShuffleWith1Binop (ShuffleVectorInst & Shuf, const SimplifyQuery & SQ)

    Defined at line 2241 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • optional getMaxVScale (const Function & F, const TargetTransformInfo & TTI)

    Defined at line 2242 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • SCCNodesResult createSCCNodeSet (ArrayRef<Function *> Functions)

    Defined at line 2242 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • bool hasUsesToReplace (GlobalAlias & GA, const LLVMUsed & U, bool & RenameTarget)

    Defined at line 2242 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void findLiveReferences (Function & F, DominatorTree & DT, ArrayRef<CallBase *> toUpdate, MutableArrayRef<struct PartiallyConstructedSafepointRecord> records, GCStrategy * GC)

    Defined at line 2243 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • Value * getSalvageOpsForIcmpOp (ICmpInst * Icmp, uint64_t CurrentLocOps, SmallVectorImpl<uint64_t> & Opcodes, SmallVectorImpl<Value *> & AdditionalValues)

    Defined at line 2245 of file llvm/lib/Transforms/Utils/Local.cpp

  • void dumpMachOUniversalBinaryArchAll (MachOUniversalBinary * UB, int & SymbolList, StringRef Filename, LLVMContext * ContextPtr)

    Defined at line 2247 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • Value * upgradePMULDQ (IRBuilder<> & Builder, CallBase & CI, bool IsSigned)

    Defined at line 2250 of file llvm/lib/IR/AutoUpgrade.cpp

  • void writeDIStringType (raw_ostream & Out, const DIStringType * N, AsmWriterContext & WriterCtx)

    Defined at line 2252 of file llvm/lib/IR/AsmWriter.cpp

  • LLVMValueRef LLVMGetLastGlobal (LLVMModuleRef M)

    Defined at line 2254 of file llvm/lib/IR/Core.cpp

  • void ProfileInstancesOpInit (FoldingSetNodeID & ID, const RecTy * Type, const Init * Regex)

    Defined at line 2256 of file llvm/lib/TableGen/Record.cpp

  • Value * simplifyOrLogic (Value * X, Value * Y)

    TODO: Many of these folds could use LogicalAnd/LogicalOr.

    Defined at line 2256 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isIndvarOverflowCheckKnownFalse (const LoopVectorizationCostModel * Cost, ElementCount VF, optional UF)

    For the given VF and UF and maximum trip count computed for the loop, return

    whether the induction variable might overflow in the vectorized loop. If not,

    then we know a runtime overflow check always evaluates to false and can be

    removed.

    Defined at line 2257 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • template <typename AARGetterT>
    SmallPtrSet<Function *, 8> deriveAttrsInPostOrder (ArrayRef<Function *> Functions, AARGetterT && AARGetter, bool ArgAttrsOnly)

    Defined at line 2257 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void initializeX86SpeculativeLoadHardeningPassPassOnce (PassRegistry & Registry)

    Defined at line 2260 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp

  • Value * findRematerializableChainToBasePointer (SmallVectorImpl<Instruction *> & ChainToBase, Value * CurrentValue)

    Helper function for the "rematerializeLiveValues". It walks use chain

    starting from the "CurrentValue" until it reaches the root of the chain, i.e.

    the base or a value it cannot process. Only "simple" values are processed

    (currently it is GEP's and casts). The returned root is examined by the

    callers of findRematerializableChainToBasePointer. Fills "ChainToBase" array

    with all visited values.

    Defined at line 2261 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • LLVMValueRef LLVMGetNextGlobal (LLVMValueRef GlobalVar)

    Defined at line 2262 of file llvm/lib/IR/Core.cpp

  • Instruction * simplifyIRemMulShl (BinaryOperator & I, InstCombinerImpl & IC)

    Variety of transform for:

    (urem/srem (mul X, Y), (mul X, Z))

    (urem/srem (shl X, Y), (shl X, Z))

    (urem/srem (shl Y, X), (shl Z, X))

    NB: The shift cases are really just extensions of the mul case. We treat

    shift as Val * (1

    <

    <

    Amt).

    Defined at line 2262 of file llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  • CallInst * HasSafePathToPredecessorCall (const Value * Arg, Instruction * Retain, ProvenanceAnalysis & PA)

    Check if there is a dependent call earlier that does not have anything in

    between the Retain and the call that can affect the reference count of their

    shared pointer argument. Note that Retain need not be in BB.

    Defined at line 2264 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • bool succ_L (int & NodeOrder, SmallSetVector<SUnit *, 8> & Succs, SwingSchedulerDDG * DDG, const NodeSet * S)

    Compute the Succ_L(O) set, as defined in the paper. The set is defined

    as the successors of the elements of NodeOrder that are not also in

    NodeOrder.

    Defined at line 2266 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • MCSectionWasm * selectWasmSectionForGlobal (MCContext & Ctx, const GlobalObject * GO, SectionKind Kind, Mangler & Mang, const TargetMachine & TM, bool EmitUniqueSection, unsigned int * NextUniqueID, bool Retain)

    Defined at line 2266 of file llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp

  • LLVMValueRef LLVMGetPreviousGlobal (LLVMValueRef GlobalVar)

    Defined at line 2270 of file llvm/lib/IR/Core.cpp

  • void writeDIDerivedType (raw_ostream & Out, const DIDerivedType * N, AsmWriterContext & WriterCtx)

    Defined at line 2270 of file llvm/lib/IR/AsmWriter.cpp

  • bool sinkAndCmp0Expression (Instruction * AndI, const TargetLowering & TLI, SetOfInstrs & InsertedInsts)

    Duplicate and sink the given 'and' instruction into user blocks where it is

    used in a compare to allow isel to generate better code for targets where

    this operation can be combined.

    Return true if any changes are made.

    Defined at line 2270 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool OptimizeGlobalAliases (Module & M, SmallPtrSetImpl<const Comdat *> & NotDiscardableComdats)

    Defined at line 2272 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • Instruction * foldICmpShlLHSC (ICmpInst & Cmp, Instruction * Shl, const APInt & C)

    Fold icmp (shl nuw C2, Y), C.

    Defined at line 2273 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void LLVMDeleteGlobal (LLVMValueRef GlobalVar)

    Defined at line 2278 of file llvm/lib/IR/Core.cpp

  • bool shouldMergeGEPs (GEPOperator & GEP, GEPOperator & Src)

    Defined at line 2280 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • Value * applyX86MaskOn1BitsVec (IRBuilder<> & Builder, Value * Vec, Value * Mask)

    Applying mask on vector of i1's and make sure result is at least 8 bits wide.

    Defined at line 2280 of file llvm/lib/IR/AutoUpgrade.cpp

  • Value * replaceSymmetricNode (IRBuilderBase & B, unsigned int Opcode, std::optional<FastMathFlags> Flags, Value * InputA, Value * InputB)

    Defined at line 2281 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp

  • LLVMValueRef LLVMGetInitializer (LLVMValueRef GlobalVar)

    Defined at line 2282 of file llvm/lib/IR/Core.cpp

  • CallInst * FindPredecessorRetainWithSafePath (const Value * Arg, BasicBlock * BB, Instruction * Autorelease, ProvenanceAnalysis & PA)

    Find a dependent retain that precedes the given autorelease for which there

    is nothing in between the two instructions that can affect the ref count of

    Arg.

    Defined at line 2284 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • Value * getSqrtCall (Value * V, AttributeList Attrs, bool NoErrno, Module * M, IRBuilderBase & B, const TargetLibraryInfo * TLI)

    Defined at line 2286 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • InstructionCost chainToBasePointerCost (SmallVectorImpl<Instruction *> & Chain, TargetTransformInfo & TTI)

    Helper function for the "rematerializeLiveValues". Compute cost of the use

    chain we are going to rematerialize.

    Defined at line 2286 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool useMaskedInterleavedAccesses (const TargetTransformInfo & TTI)

    Return whether we allow using masked interleave-groups (for dealing with

    strided loads/stores that reside in predicated blocks, or for dealing

    with gaps).

    Defined at line 2288 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void LLVMSetInitializer (LLVMValueRef GlobalVar, LLVMValueRef ConstantVal)

    Defined at line 2289 of file llvm/lib/IR/Core.cpp

  • int OptNameCompare (const std::pair<const char *, Option *> * LHS, const std::pair<const char *, Option *> * RHS)

    ===----------------------------------------------------------------------===//

    -help and -help-hidden option implementation

    Defined at line 2289 of file llvm/lib/Support/CommandLine.cpp

  • bool upgradeOldMemoryAttribute (MemoryEffects & ME, uint64_t EncodedKind)

    Defined at line 2291 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Instruction * foldFPtoI (Instruction & FI, InstCombiner & IC)

    Defined at line 2293 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • LLVMBool LLVMIsThreadLocal (LLVMValueRef GlobalVar)

    Defined at line 2294 of file llvm/lib/IR/Core.cpp

  • int SubNameCompare (const std::pair<const char *, SubCommand *> * LHS, const std::pair<const char *, SubCommand *> * RHS)

    Defined at line 2294 of file llvm/lib/Support/CommandLine.cpp

  • basic_string getMemProfFuncName (Twine Base, unsigned int CloneNo)

    Defined at line 2295 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • void LLVMSetThreadLocal (LLVMValueRef GlobalVar, LLVMBool IsThreadLocal)

    Defined at line 2298 of file llvm/lib/IR/Core.cpp

  • Instruction * foldBitwiseLogicWithIntrinsics (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Fold and/or/xor with two equal intrinsic IDs:

    bitwise(fshl (A, B, ShAmt), fshl(C, D, ShAmt))

    -> fshl(bitwise(A, C), bitwise(B, D), ShAmt)

    bitwise(fshr (A, B, ShAmt), fshr(C, D, ShAmt))

    -> fshr(bitwise(A, C), bitwise(B, D), ShAmt)

    bitwise(bswap(A), bswap(B)) -> bswap(bitwise(A, B))

    bitwise(bswap(A), C) -> bswap(bitwise(A, bswap(C)))

    bitwise(bitreverse(A), bitreverse(B)) -> bitreverse(bitwise(A, B))

    bitwise(bitreverse(A), C) -> bitreverse(bitwise(A, bitreverse(C)))

    Defined at line 2299 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void dumpMachOUniversalBinary (MachOUniversalBinary * UB, int & SymbolList, StringRef Filename, LLVMContext * ContextPtr)

    Defined at line 2300 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void sortOpts (StringMap<Option *> & OptMap, SmallVectorImpl<std::pair<const char *, Option *>> & Opts, bool ShowHidden)

    Copy Options into a vector so we can sort them as we like.

    Defined at line 2300 of file llvm/lib/Support/CommandLine.cpp

  • void sinkLastInstruction (ArrayRef Blocks)

    Assuming canSinkInstructions(Blocks) has returned true, sink the last

    instruction of every block in Blocks to their common successor, commoning

    into one instruction.

    Defined at line 2300 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool computePath (SUnit * Cur, int & Path, int & DestNodes, int & Exclude, SmallPtrSet<SUnit *, 8> & Visited, SwingSchedulerDDG * DDG)

    Return true if there is a path from the specified node to any of the nodes

    in DestNodes. Keep track and return the nodes in any path.

    Defined at line 2301 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • LLVMBool LLVMIsGlobalConstant (LLVMValueRef GlobalVar)

    Defined at line 2302 of file llvm/lib/IR/Core.cpp

  • Value * upgradeMaskedCompare (IRBuilder<> & Builder, CallBase & CI, unsigned int CC, bool Signed)

    Defined at line 2302 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool isMemProfClone (const Function & F)

    Defined at line 2303 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • CallInst * FindPredecessorAutoreleaseWithSafePath (const Value * Arg, BasicBlock * BB, ReturnInst * Ret, ProvenanceAnalysis & PA)

    Look for an ``autorelease'' instruction dependent on Arg such that there are

    no instructions dependent on Arg that need a positive ref count in between

    the autorelease and the ret.

    Defined at line 2303 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • void writeDISubrangeType (raw_ostream & Out, const DISubrangeType * N, AsmWriterContext & WriterCtx)

    Defined at line 2303 of file llvm/lib/IR/AsmWriter.cpp

  • void LLVMSetGlobalConstant (LLVMValueRef GlobalVar, LLVMBool IsConstant)

    Defined at line 2306 of file llvm/lib/IR/Core.cpp

  • bool translateRM (MCInst & mcInst, const OperandSpecifier & operand, InternalInstruction & insn, const MCDisassembler * Dis)

    translateRM - Translates an operand stored in the R/M (and possibly SIB)

    byte of an instruction to LLVM form, and appends it to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    operand - The operand, as stored in the descriptor table.
    insn - The instruction to extract Mod, R/M, and SIB fields from.

    Returns

    - 0 on success; nonzero otherwise

    Defined at line 2306 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • Instruction * foldAddSubSelect (SelectInst & SI, InstCombiner::BuilderTy & Builder)

    Turn select C, (X + Y), (X - Y) --> (X + (select C, Y, (-Y))).

    This is even legal for FP.

    Defined at line 2306 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool detectShiftUntilZeroIdiom (Loop * CurLoop, const DataLayout & DL, Intrinsic::ID & IntrinID, Value *& InitX, Instruction *& CntInst, PHINode *& CntPhi, Instruction *& DefX)

    Return true if the idiom is detected in the loop.

    Additionally:

    1)

    is set to the instruction Counting Leading Zeros (CTLZ)

    or nullptr if there is no such.

    2)

    is set to the corresponding phi node

    or nullptr if there is no such.

    3)

    is set to the value whose CTLZ could be used.

    4)

    is set to the instruction calculating Loop exit condition.

    The core idiom we are trying to detect is:

    Code

                                                    
                                                            if (x0 == 0)
                                                              goto loop-exit // the precondition of the loop
                                                            cnt0 = init-val;
                                                            do {
                                                               x = phi (x0, x.next);   //PhiX
                                                               cnt = phi(cnt0, cnt.next);
                                                        
                                                               cnt.next = cnt + 1;
                                                                ...
                                                               x.next = x >> 1;   // DefX
                                                                ...
                                                            } while(x.next != 0);
                                                        
                                                         loop-exit:
                                                    
                                                

    Defined at line 2307 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • bool noConflictingReadWrites (Instruction * I, MemorySSA * MSSA, AAResults * AA, Loop * CurLoop, SinkAndHoistLICMFlags & Flags)

    For a given store instruction or writeonly call instruction, this function

    checks that there are no read or writes that conflict with the memory

    access in the instruction

    Defined at line 2308 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • unsigned int getMemProfCloneNum (const Function & F)

    Return the clone number of the given function by extracting it from the

    memprof suffix. Assumes the caller has already confirmed it is a memprof

    clone.

    Defined at line 2310 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • Instruction * canonicalizeInsertSplat (ShuffleVectorInst & Shuf, InstCombiner::BuilderTy & Builder)

    If we have an insert of a scalar to a non-zero element of an undefined

    vector and then shuffle that value, that's the same as inserting to the zero

    element and shuffling. Splatting from the zero element is recognized as the

    canonical form of splat.

    Defined at line 2310 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • bool nextIRInstructionDataMatchesNextInst (IRInstructionData & ID)

    Checks that the next instruction in the InstructionDataList matches the

    next instruction in the module. If they do not, there could be the

    possibility that extra code has been inserted, and we must ignore it.

    Parameters

    ID - The IRInstructionData to check the next instruction of.

    Defined at line 2312 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • int RUN_ALL_TESTS ()

    Use this function in main() to run all tests. It returns 0 if all

    tests are successful, or 1 otherwise.

    RUN_ALL_TESTS() should be invoked after the command line has been

    parsed by InitGoogleTest().

    This function was formerly a macro; thus, it is in the global

    namespace and has an all-caps name.

    Defined at line 2317 of file third-party/unittest/googletest/include/gtest/gtest.h

  •  LLVMGetThreadLocalMode (LLVMValueRef GlobalVar)

    Defined at line 2310 of file llvm/lib/IR/Core.cpp

  • bool foldMaskedShiftToBEXTR (SelectionDAG & DAG, SDValue N, uint64_t Mask, SDValue Shift, SDValue X, X86ISelAddressMode & AM, const X86Subtarget & Subtarget)

    Transform "(X >> SHIFT) & (MASK << C1)" to

    "((X >> (SHIFT + C1)) & (MASK)) << C1". Everything before the SHL will be

    matched to a BEXTR later. Returns false if the simplification is performed.

    Defined at line 2317 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • Constant * getSignedIntOrFpConstant (Type * Ty, int64_t C)

    A helper function that returns an integer or floating-point constant with

    value C.

    Defined at line 2321 of file llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

  • bool AreEquivalentPhiNodes (PHINode & OrigRootPhi, PHINode & AlternateRootPhi)

    Defined at line 2321 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void dumpTapiUniversal (TapiUniversal * TU, int & SymbolList, StringRef Filename)

    Defined at line 2322 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • APInt::WordType lowBitMask (unsigned int bits)

    Returns the integer part with the least significant BITS set.

    BITS cannot be zero.

    Defined at line 2323 of file llvm/lib/Support/APInt.cpp

  • void writeDICompositeType (raw_ostream & Out, const DICompositeType * N, AsmWriterContext & WriterCtx)

    Defined at line 2323 of file llvm/lib/IR/AsmWriter.cpp

  • void orderSegments (std::vector<Segment *> & Segments)

    Orders segments such that if x = y->ParentSegment then y comes before x.

    Defined at line 2324 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • void setAssignmentTrackingModuleFlag (Module & M)

    Defined at line 2325 of file llvm/lib/IR/DebugInfo.cpp

  • void sortSubCommands (const SmallPtrSetImpl<SubCommand *> & SubMap, SmallVectorImpl<std::pair<const char *, SubCommand *>> & Subs)

    Defined at line 2327 of file llvm/lib/Support/CommandLine.cpp

  • void LLVMSetThreadLocalMode (LLVMValueRef GlobalVar,  Mode)

    Defined at line 2327 of file llvm/lib/IR/Core.cpp

  • bool rewriteDebugUsers (Instruction & From, Value & To, Instruction & DomPoint, DominatorTree & DT, function_ref<DbgValReplacement (DbgVariableRecord &)> RewriteDVRExpr)

    Point debug users of

    to

    using exprs given by

    possibly moving/undefing users to prevent use-before-def. Returns true if

    changes are made.

    Defined at line 2328 of file llvm/lib/Transforms/Utils/Local.cpp

  • APInt::WordType lowHalf (APInt::WordType part)

    Returns the value of the lower half of PART.

    Defined at line 2329 of file llvm/lib/Support/APInt.cpp

  • bool getAssignmentTrackingModuleFlag (const Module & M)

    Defined at line 2331 of file llvm/lib/IR/DebugInfo.cpp

  • uint64_t layoutSegments (std::vector<Segment *> & Segments, uint64_t Offset)

    This function finds a consistent layout for a list of segments starting from

    an Offset. It assumes that Segments have been sorted by orderSegments and

    returns an Offset one past the end of the last segment.

    Defined at line 2331 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • void computeLiveOuts (MachineFunction & MF, RegPressureTracker & RPTracker, NodeSet & NS)

    Compute the live-out registers for the instructions in a node-set.

    The live-out registers are those that are defined in the node-set,

    but not used. Except for use operands of Phis.

    Defined at line 2331 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • VectorType * createAndCheckVectorTypesForPromotion (SetVector<Type *> & OtherTys, ArrayRef CandidateTysCopy, function_ref CheckCandidateType, Partition & P, const DataLayout & DL, SmallVectorImpl<VectorType *> & CandidateTys, bool & HaveCommonEltTy, Type *& CommonEltTy, bool & HaveVecPtrTy, bool & HaveCommonVecPtrTy, VectorType *& CommonVecPtrTy, unsigned int VScale)

    Defined at line 2332 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool isFuncletReturnInstr (MachineInstr & MI)

    Defined at line 2333 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • APInt::WordType highHalf (APInt::WordType part)

    Returns the value of the upper half of PART.

    Defined at line 2334 of file llvm/lib/Support/APInt.cpp

  • Value * upgradeX86MaskedShift (IRBuilder<> & Builder, CallBase & CI, Intrinsic::ID IID)

    Replace a masked intrinsic with an older unmasked intrinsic.

    Defined at line 2334 of file llvm/lib/IR/AutoUpgrade.cpp

  • Constant * constantFoldBinOpWithSplat (unsigned int Opcode, Constant * Vector, Constant * Splat, bool SplatLHS, const DataLayout & DL)

    Get the result of `Vector Op Splat` (or Splat Op Vector if

    Defined at line 2334 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • TypeSetByHwMode getImplicitType (const Record * R, unsigned int ResNo, bool NotRegisters, bool Unnamed, TreePattern & TP)

    getImplicitType - Check to see if the specified record has an implicit

    type which should be applied to it. This will infer the type of register

    references from the register file information, for example.

    When Unnamed is set, return the type of a DAG operand with no name, such as

    the F8RC register class argument in:

    (COPY_TO_REGCLASS GPR:$src, F8RC)

    When Unnamed is false, return the type of a named DAG operand such as the

    GPR:$src operand above.

    Defined at line 2334 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool isFuncLocalAndNotCaptured (Value * Arg, const CallBase * CB, EarliestEscapeAnalysis & EA)

    Return true if "Arg" is function local and isn't captured before "CB".

    Defined at line 2340 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • Value * upgradeMaskedMove (IRBuilder<> & Builder, CallBase & CI)

    Defined at line 2341 of file llvm/lib/IR/AutoUpgrade.cpp

  • void translateFPRegister (MCInst & mcInst, uint8_t stackPos)

    translateFPRegister - Translates a stack position on the FPU stack to its

    LLVM form, and appends it to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    stackPos - The stack position to translate.

    Defined at line 2343 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • void dumpSymbolicFile (SymbolicFile * O, int & SymbolList, StringRef Filename)

    Defined at line 2344 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool isExtractBitsCandidateUse (Instruction * User)

    Check if the candidates could be combined with a shift instruction, which

    includes:

    1. Truncate instruction

    2. And instruction and the imm is a mask of the low bits:

    imm

    &

    (imm+1) == 0

    Defined at line 2346 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • unsigned int closestSucc (const SUnit * SU)

    closestSucc - Returns the scheduled cycle of the successor which is

    closest to the current cycle.

    Defined at line 2346 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • void printMachOUniversalHeaders (const object::MachOUniversalBinary * UB, bool verbose)

    Defined at line 2346 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Value * simplifyOrInst (Value * , Value * , const SimplifyQuery & , unsigned int )

    Given operands for an Or, see if we can fold the result.

    If not, this returns null.

    Defined at line 2347 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • LLVMBool LLVMIsExternallyInitialized (LLVMValueRef GlobalVar)

    Defined at line 2349 of file llvm/lib/IR/Core.cpp

  • void findRematerializationCandidates (int PointerToBase, int & RematerizationCandidates, TargetTransformInfo & TTI)

    Find derived pointers that can be recomputed cheap enough and fill

    RematerizationCandidates with such candidates.

    Defined at line 2349 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • unsigned int getNumGlobalVariableUses (const Constant * C, bool & HasNonGlobalUsers)

    Compute the number of Global Variables that uses a Constant.

    Defined at line 2351 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • Function * FindAtExitLibFunc (Module & M, function_ref<TargetLibraryInfo &(Function &)> GetTLI, LibFunc Func)

    Defined at line 2351 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void LLVMSetExternallyInitialized (LLVMValueRef GlobalVar, LLVMBool IsExtInit)

    Defined at line 2353 of file llvm/lib/IR/Core.cpp

  • bool translateMaskRegister (MCInst & mcInst, uint8_t maskRegNum)

    translateMaskRegister - Translates a 3-bit mask register number to

    LLVM form, and appends it to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    maskRegNum - Number of mask register from 0 to 7.

    Returns

    - false on success; true otherwise.

    Defined at line 2354 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • Value * upgradeMaskToInt (IRBuilder<> & Builder, CallBase & CI)

    Defined at line 2355 of file llvm/lib/IR/AutoUpgrade.cpp

  • template <typename T, typename TFlag>
    void printFlags (T Value, ArrayRef<EnumEntry<TFlag>> Flags, raw_ostream & OS)

    Defined at line 2355 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • Value * simplifyAndOrWithOpReplaced (Value * V, Value * Op, Value * RepOp, bool SimplifyOnly, InstCombinerImpl & IC, unsigned int Depth)

    Try to simplify V by replacing occurrences of Op with RepOp, but only look

    through bitwise operations. In particular, for X | Y we try to replace Y with

    0 inside X and for X

    &

    Y we try to replace Y with -1 inside X.

    Return the simplified result of X if successful, and nullptr otherwise.

    If SimplifyOnly is true, no new instructions will be created.

    Defined at line 2355 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • Value * createPowWithIntegerExponent (Value * Base, Value * Expo, Module * M, IRBuilderBase & B)

    Defined at line 2357 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • int dumpSymbolNamesFromFile (StringRef Filename)

    Defined at line 2357 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • bool findNonImmUse (SDNode * Root, SDNode * Def, SDNode * ImmedUse, bool IgnoreChains)

    findNonImmUse - Return true if "Def" is a predecessor of "Root" via a path

    beyond "ImmedUse". We may ignore chains as they are checked separately.

    Defined at line 2357 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool SinkShiftAndTruncate (BinaryOperator * ShiftI, Instruction * User, ConstantInt * CI, int & InsertedShifts, const TargetLowering & TLI, const DataLayout & DL)

    Sink both shift and truncate instruction to the use of truncate's BB.

    Defined at line 2361 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • AtomicOrdering addAcquireOrdering (AtomicOrdering AO)

    Defined at line 2362 of file llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp

  • unsigned int calcMaxScratches (const SUnit * SU)

    calcMaxScratches - Returns an cost estimate of the worse case requirement

    for scratch registers, i.e. number of data dependencies.

    Defined at line 2364 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • template <class Range>
    uint64_t layoutSections (Range Sections, uint64_t Offset)

    This function finds a consistent layout for a list of sections. It assumes

    that the ->ParentSegment of each section has already been laid out. The

    supplied starting Offset is used for the starting offset of any section that

    does not have a ParentSegment. It returns either the offset given if all

    sections had a ParentSegment or an offset one past the last section if there

    was a section that didn't have a ParentSegment.

    Defined at line 2364 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • bool upgradeAVX512MaskToSelect (StringRef Name, IRBuilder<> & Builder, CallBase & CI, Value *& Rep)

    Replace intrinsic with unmasked version and a select.

    Defined at line 2364 of file llvm/lib/IR/AutoUpgrade.cpp

  • void writeDISubroutineType (raw_ostream & Out, const DISubroutineType * N, AsmWriterContext & WriterCtx)

    Defined at line 2365 of file llvm/lib/IR/AsmWriter.cpp

  • template <typename AARGetterT>
    bool runImpl (CallGraphSCC & SCC, AARGetterT AARGetter)

    Defined at line 2369 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void recordSourceLine (AsmPrinter & Asm, unsigned int Line, unsigned int Col, const MDNode * S, unsigned int Flags, unsigned int CUID, uint16_t DwarfVersion, int DCUs, StringRef Comment)

    Register a source line with debug info. Returns the unique label that was

    emitted and which provides correspondence to the source line list.

    Defined at line 2370 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • bool translateOperand (MCInst & mcInst, const OperandSpecifier & operand, InternalInstruction & insn, const MCDisassembler * Dis)

    translateOperand - Translates an operand stored in an internal instruction

    to LLVM's format and appends it to an MCInst.

    Parameters

    mcInst - The MCInst to append to.
    operand - The operand, as stored in the descriptor table.
    insn - The internal instruction.

    Returns

    - false on success; true otherwise.

    Defined at line 2372 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool isGOTEquivalentCandidate (const GlobalVariable * GV, unsigned int & NumGOTEquivUsers, bool & HasNonGlobalUsers)

    Only consider global GOT equivalents if at least one user is a

    cstexpr inside an initializer of another global variables. Also, don't

    handle cstexpr inside instructions. During global variable emission,

    candidates are skipped and are emitted later in case at least one cstexpr

    isn't replaced by a PC relative GOT entry access.

    Defined at line 2374 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • bool hasOnlyLiveInOpers (const SUnit * SU)

    hasOnlyLiveInOpers - Return true if SU has only value predecessors that are

    CopyFromReg from a virtual register.

    Defined at line 2375 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • void writeDIFile (raw_ostream & Out, const DIFile * N, AsmWriterContext & )

    Defined at line 2376 of file llvm/lib/IR/AsmWriter.cpp

  • bool pointerInvalidatedByLoop (MemorySSA * MSSA, MemoryUse * MU, Loop * CurLoop, Instruction & I, SinkAndHoistLICMFlags & Flags, bool InvariantGroup)

    Defined at line 2376 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • LLVMValueRef LLVMAddAlias2 (LLVMModuleRef M, LLVMTypeRef ValueTy, unsigned int AddrSpace, LLVMValueRef Aliasee, const char * Name)

    Add a GlobalAlias with the given value type, address space and aliasee.

    Defined at line 2359 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetNamedGlobalAlias (LLVMModuleRef M, const char * Name, size_t NameLen)

    Obtain a GlobalAlias value from a Module by its name.

    The returned value corresponds to a llvm::GlobalAlias value.

    Defined at line 2367 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetFirstGlobalAlias (LLVMModuleRef M)

    Obtain an iterator to the first GlobalAlias in a Module.

    Defined at line 2372 of file llvm/lib/IR/Core.cpp

  • VectorType * isVectorPromotionViable (Partition & P, const DataLayout & DL, unsigned int VScale)

    Test whether the given alloca partitioning and range of slices can be

    promoted to a vector.

    This is a quick test to check whether we can rewrite a particular alloca

    partition (and its newly formed alloca) into a vector alloca with only

    whole-vector loads and stores such that it could be promoted to a vector

    SSA value. We only can ensure this for a limited set of operations, and we

    don't want to do the rewrites unless we are confident that the result will

    be promotable, so we have an early test here.

    Defined at line 2376 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • MachineInstr * getLoopPhiUser (Register Reg, MachineBasicBlock * Loop)

    Return a phi if Reg is referenced by the phi.

    canApply() guarantees that at most only one such phi exists.

    Defined at line 2378 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • bool addNoRecurseAttrsTopDown (Function & F)

    Defined at line 2378 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • Value * StripPointerGEPsAndCasts (Value * V)

    Defined at line 2379 of file llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp

  • LLVMValueRef LLVMGetLastGlobalAlias (LLVMModuleRef M)

    Obtain an iterator to the last GlobalAlias in a Module.

    Defined at line 2380 of file llvm/lib/IR/Core.cpp

  • Instruction * foldOverflowingAddSubSelect (SelectInst & SI, InstCombiner::BuilderTy & Builder)

    Turn X + Y overflows ? -1 : X + Y -> uadd_sat X, Y

    And X - Y overflows ? 0 : X - Y -> usub_sat X, Y

    Along with a number of patterns similar to:

    X + Y overflows ? (X

    <

    0 ? INTMIN : INTMAX) : X + Y --> sadd_sat X, Y

    X - Y overflows ? (X > 0 ? INTMAX : INTMIN) : X - Y --> ssub_sat X, Y

    Defined at line 2381 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool IsEmptyAtExitFunction (const Function & Fn)

    Returns whether the given function is an empty C++ destructor or atexit

    handler and can therefore be eliminated. Note that we assume that other

    optimization passes have already simplified the code so we simply check for

    'ret'.

    Defined at line 2383 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • LLVMValueRef LLVMGetNextGlobalAlias (LLVMValueRef GA)

    Advance a GlobalAlias iterator to the next GlobalAlias.

    Returns NULL if the iterator was already at the end and there are no more

    global aliases.

    Defined at line 2388 of file llvm/lib/IR/Core.cpp

  • void exportSymbolNamesFromFiles (const int & InputFilenames)

    Defined at line 2392 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void writeDICompileUnit (raw_ostream & Out, const DICompileUnit * N, AsmWriterContext & WriterCtx)

    Defined at line 2392 of file llvm/lib/IR/AsmWriter.cpp

  • ConstantSDNode * getAsNonOpaqueConstant (SDValue N)

    If

    is a ConstantSDNode with isOpaque() == false return it casted to a

    ConstantSDNode pointer else nullptr.

    Defined at line 2394 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool sinkCommonCodeFromPredecessors (BasicBlock * BB, DomTreeUpdater * DTU)

    Check whether BB's predecessors end with unconditional branches. If it is

    true, sink any common code from the predecessors to BB.

    Defined at line 2394 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • LLVMValueRef LLVMGetPreviousGlobalAlias (LLVMValueRef GA)

    Decrement a GlobalAlias iterator to the previous GlobalAlias.

    Returns NULL if the iterator was already at the beginning and there are

    no previous global aliases.

    Defined at line 2396 of file llvm/lib/IR/Core.cpp

  • bool isBitCastSemanticsPreserving (const DataLayout & DL, Type * FromTy, Type * ToTy)

    Check if a bitcast between a value of type

    to type

    would

    losslessly preserve the bits and semantics of the value. This predicate is

    symmetric, i.e swapping

    and

    should give the same result.

    Note that Type::canLosslesslyBitCastTo is not suitable here because it

    allows semantically unequivalent bitcasts, such as

    <

    2 x i64> ->

    <

    4 x i32>,

    and also does not allow lossless pointer

    <

    -> integer conversions.

    Defined at line 2396 of file llvm/lib/Transforms/Utils/Local.cpp

  • VPIRBasicBlock * replaceVPBBWithIRVPBB (VPBasicBlock * VPBB, BasicBlock * IRBB, VPlan * Plan)

    Replace

    with a VPIRBasicBlock wrapping

    All recipes from

    are moved to the end of the newly created VPIRBasicBlock. All

    predecessors and successors of VPBB, if any, are rewired to the new

    VPIRBasicBlock. If

    may be unreachable,

    must be passed.

    Defined at line 2396 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • bool hasOnlyLiveOutUses (const SUnit * SU)

    hasOnlyLiveOutUses - Return true if SU has only value successors that are

    CopyToReg to a virtual register. This SU def is probably a liveout and

    it has no other use. It should be scheduled closer to the terminator.

    Defined at line 2397 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • basic_string getSimpleNodeName (const BasicBlock * Node)

    Defined at line 2398 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp

  • bool isTailCallOpcode (unsigned int Opc)

    Defined at line 2399 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • bool OptimizeEmptyGlobalAtExitDtors (Function * CXAAtExitFn, bool isCXX)

    Defined at line 2399 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • uint64_t layoutSectionsForOnlyKeepDebug (Object & Obj, uint64_t Off)

    Rewrite sh_offset after some sections are changed to SHT_NOBITS and thus

    occupy no space in the file.

    Defined at line 2400 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • bool isTruncateOf (SelectionDAG & DAG, SDValue N, SDValue & Op, KnownBits & Known)

    isTruncateOf - If N is a truncate of some other value, return true, record

    the value being truncated in Op and which of Op's bits are zero/one in Known.

    This function computes KnownBits to avoid a duplicated call to

    computeKnownBits in the caller.

    Defined at line 2403 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • int llvm_nm_main (int argc, char ** , const llvm::ToolContext & )

    Defined at line 2408 of file llvm/tools/llvm-nm/llvm-nm.cpp

  • void computeKnownBits (const Value * V, const APInt & DemandedElts, KnownBits & Known, const SimplifyQuery & Q, unsigned int Depth)

    Determine which bits of V are known to be either zero or one and return

    them in the Known bit set.

    NOTE: we cannot consider 'undef' to be "IsZero" here. The problem is that

    we cannot optimize based on the assumption that it is zero without changing

    it to be an explicit zero. If we don't change it to zero, other code could

    optimized based on the contradictory assumption that it is non-zero.

    Because instcombine aggressively folds operations with undef args anyway,

    this won't lose us code quality.

    This function is defined on values with integer type, values with pointer

    type, and vectors of integers. In the case

    where V is a vector, known zero, and known one values are the

    same width as the vector element, and the bit is set only if it is true

    for all of the demanded elements in the vector specified by DemandedElts.

    Defined at line 2403 of file llvm/lib/Analysis/ValueTracking.cpp

  • LLVMValueRef LLVMAliasGetAliasee (LLVMValueRef Alias)

    Retrieve the target value of an alias.

    Defined at line 2404 of file llvm/lib/IR/Core.cpp

  • InsertPoint getInsertPointAfterInstr (Instruction * I)

    Defined at line 2406 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void emitMatchClassEnumeration (CodeGenTarget & Target, int & Infos, raw_ostream & OS)

    emitMatchClassEnumeration - Emit the enumeration for match class kinds.

    Defined at line 2406 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • void LLVMAliasSetAliasee (LLVMValueRef Alias, LLVMValueRef Aliasee)

    Set the target value of an alias.

    Defined at line 2408 of file llvm/lib/IR/Core.cpp

  • bool deduceFunctionAttributeInRPO (Module & M, LazyCallGraph & CG)

    Defined at line 2410 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp

  • void rematerializeLiveValuesAtUses (int & RematerizationCandidates, MutableArrayRef<PartiallyConstructedSafepointRecord> Records, int & PointerToBase)

    Try to rematerialize derived pointers immediately before their uses

    (instead of rematerializing after every statepoint it is live through).

    This can be beneficial when derived pointer is live across many

    statepoints, but uses are rare.

    Defined at line 2411 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool hasBFloatType (const TreePatternNode & Node)

    Defined at line 2413 of file llvm/utils/TableGen/GlobalISelEmitter.cpp

  • LLVMValueRef LLVMAddFunction (LLVMModuleRef M, const char * Name, LLVMTypeRef FunctionTy)

    Add a function to a module under a specified name.

    Defined at line 2414 of file llvm/lib/IR/Core.cpp

  • Status getRedirectedFileStatus (const Twine & OriginalPath, bool UseExternalNames, Status ExternalStatus)

    Defined at line 2418 of file llvm/lib/Support/VirtualFileSystem.cpp

  • LLVMValueRef LLVMGetOrInsertFunction (LLVMModuleRef M, const char * Name, size_t NameLen, LLVMTypeRef FunctionTy)

    Obtain or insert a function into a module.

    If a function with the specified name already exists in the module, it

    is returned. Otherwise, a new function is created in the module with the

    specified name and type and is returned.

    The returned value corresponds to a llvm::Function instance.

    Defined at line 2420 of file llvm/lib/IR/Core.cpp

  • bool isIdentifierChar (char c)

    FIXME: This is mostly duplicated from the function in AsmLexer.cpp. The

    difference being that that function accepts '

    @

    ' as part of identifiers and

    we can't do that. AsmLexer.cpp should probably be changed to handle

    '

    @

    ' as a special case when needed.

    Defined at line 2421 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • bool isOnlyReachableViaThisEdge (const BasicBlockEdge & E, DominatorTree * DT)

    There is an edge from 'Src' to 'Dst'. Return

    true if every path from the entry block to 'Dst' passes via this edge. In

    particular 'Dst' must not be reachable via another edge from 'Src'.

    Defined at line 2421 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • bool isSinCosLibcallAvailable (SDNode * Node, const TargetLowering & TLI)

    Return true if sincos or __sincos_stret libcall is available.

    Defined at line 2423 of file llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

  • bool canFoldInAddressingMode (SDNode * N, SDNode * Use, SelectionDAG & DAG, const TargetLowering & TLI)

    Return true if 'Use' is a load or a store that uses N as its base pointer

    and that N may be folded in the load / store addressing mode.

    Defined at line 2424 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void initVRegCycle (SUnit * SU)

    Set isVRegCycle for a node with only live in opers and live out uses. Also

    set isVRegCycle for its CopyFromReg operands.

    This is only relevant for single-block loops, in which case the VRegCycle

    node is likely an induction variable in which the operand and target virtual

    registers should be coalesced (e.g. pre/post increment values). Setting the

    isVRegCycle flag helps the scheduler prioritize other uses of the same

    CopyFromReg so that this node becomes the virtual register "kill". This

    avoids interference between the values live in and out of the block and

    eliminates a copy inside the loop.

    Defined at line 2425 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • void printArchiveChild (StringRef Filename, const Archive::Child & C, size_t ChildIndex, bool verbose, bool print_offset, StringRef ArchitectureName)

    Defined at line 2426 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool pointerInvalidatedByBlock (BasicBlock & BB, MemorySSA & MSSA, MemoryUse & MU)

    Defined at line 2427 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • NoWrapFlags StrengthenNoWrapFlags (ScalarEvolution * SE, SCEVTypes Type, ArrayRef Ops, NoWrapFlags Flags)

    We're trying to construct a SCEV of type `Type' with `Ops' as operands and

    `OldFlags' as can't-wrap behavior. Infer a more aggressive set of

    can't-overflow flags for the operation if possible.

    Defined at line 2427 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • LLVMValueRef LLVMGetNamedFunction (LLVMModuleRef M, const char * Name)

    Obtain a Function value from a Module by its name.

    The returned value corresponds to a llvm::Function value.

    Defined at line 2428 of file llvm/lib/IR/Core.cpp

  • bool useSinCos (SDNode * Node)

    Only issue sincos libcall if both sin and cos are needed.

    Defined at line 2430 of file llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

  • StringRef getRecipEstimateForFunc (MachineFunction & MF)

    Get the reciprocal estimate attribute string for a function that will

    override the target defaults.

    Defined at line 2432 of file llvm/lib/CodeGen/TargetLoweringBase.cpp

  • LLVMValueRef LLVMGetNamedFunctionWithLength (LLVMModuleRef M, const char * Name, size_t Length)

    Obtain a Function value from a Module by its name.

    The returned value corresponds to a llvm::Function value.

    Defined at line 2432 of file llvm/lib/IR/Core.cpp

  • Value * getExpandedStep (const InductionDescriptor & ID, const int & ExpandedSCEVs)

    Return the expanded step for

    using

    to look up SCEV

    expansion results.

    Defined at line 2432 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • LLVMValueRef LLVMGetFirstFunction (LLVMModuleRef M)

    Obtain an iterator to the first Function in a Module.

    Defined at line 2437 of file llvm/lib/IR/Core.cpp

  • void writeDISubprogram (raw_ostream & Out, const DISubprogram * N, AsmWriterContext & WriterCtx)

    Defined at line 2437 of file llvm/lib/IR/AsmWriter.cpp

  • bool hoistMinMax (Instruction & I, Loop & L, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU)

    Try to simplify things like (A

    <

    INV_1 AND icmp A

    <

    INV_2) into (A

    <

    min(INV_1, INV_2)), if INV_1 and INV_2 are both loop invariants and their

    minimun can be computed outside of loop, and X is not a loop-invariant.

    Defined at line 2439 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • const DIExpression * computeExprForSpill (const MachineInstr & MI, const SmallVectorImpl<const MachineOperand *> & SpilledOperands)

    Compute the new DIExpression to use with a DBG_VALUE for a spill slot.

    This prepends DW_OP_deref when spilling an indirect DBG_VALUE.

    Defined at line 2440 of file llvm/lib/CodeGen/MachineInstr.cpp

  • bool isMacroParameterChar (char C)

    This is similar to the IsIdentifierChar function in AsmLexer.cpp, but does

    not accept '.'.

    Defined at line 2441 of file llvm/lib/MC/MCParser/MasmParser.cpp

  • basic_string getReciprocalOpName (bool IsSqrt, EVT VT)

    Construct a string for the given reciprocal operation of the given type.

    This string should match the corresponding option to the front-end's

    "-mrecip" flag assuming those strings have been passed through in an

    attribute string. For example, "vec-divf" for a division of a vXf32.

    Defined at line 2441 of file llvm/lib/CodeGen/TargetLoweringBase.cpp

  • bool translateInstruction (MCInst & target, InternalInstruction & source, const MCDisassembler * Dis)

    translateInstruction - Translates an internal instruction and all its

    operands to an MCInst.

    Parameters

    mcInst - The MCInst to populate with the instruction's data.
    insn - The internal instruction.

    Returns

    - false on success; true otherwise.

    Defined at line 2441 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool InBlock (const Value * V, const BasicBlock * BB)

    Defined at line 2443 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • void ProfileVarDefInit (FoldingSetNodeID & ID, const Record * Class, ArrayRef Args)

    Defined at line 2443 of file llvm/lib/TableGen/Record.cpp

  • bool shouldAlwaysEmitCompleteClassType (const DICompositeType * Ty)

    Defined at line 2444 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void resetVRegCycle (SUnit * SU)

    After scheduling the definition of a VRegCycle, clear the isVRegCycle flag of

    CopyFromReg operands. We should no longer penalize other uses of this VReg.

    Defined at line 2444 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • Function * hasSideeffectFreeStaticResolution (GlobalIFunc & IF)

    Defined at line 2444 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • LLVMValueRef LLVMGetLastFunction (LLVMModuleRef M)

    Obtain an iterator to the last Function in a Module.

    Defined at line 2445 of file llvm/lib/IR/Core.cpp

  • void addFullyUnrolledInstructionsToIgnore (Loop * L, const int & IL, SmallPtrSetImpl<Instruction *> & InstsToIgnore)

    Knowing that loop

    executes a single vector iteration, add instructions

    that will get simplified and thus should not have any cost to

    Defined at line 2447 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • uint64_t layoutSegmentsForOnlyKeepDebug (std::vector<Segment *> & Segments, uint64_t HdrEnd)

    Rewrite p_offset and p_filesz of non-PT_PHDR segments after sh_offset values

    have been updated.

    Defined at line 2450 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • LLVMValueRef LLVMGetNextFunction (LLVMValueRef Fn)

    Advance a Function iterator to the next Function.

    Returns NULL if the iterator was already at the end and there are no more

    functions.

    Defined at line 2453 of file llvm/lib/IR/Core.cpp

  • void emitOperandMatchErrorDiagStrings (AsmMatcherInfo & Info, raw_ostream & OS)

    emitMatchClassDiagStrings - Emit a function to get the diagnostic text to be

    used when an assembly operand does not match the expected operand class.

    Defined at line 2454 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • bool OptimizeExtractBits (BinaryOperator * ShiftI, ConstantInt * CI, const TargetLowering & TLI, const DataLayout & DL)

    Sink the shift *right* instruction into user blocks if the uses could

    potentially be combined with this shift instruction and generate BitExtract

    instruction. It will only be applied if the architecture supports BitExtract

    instruction. Here is an example:

    BB1:

    %x.extract.shift = lshr i64 %arg1, 32

    BB2:

    %x.extract.trunc = trunc i64 %x.extract.shift to i16

    ==>

    BB2:

    %x.extract.shift.1 = lshr i64 %arg1, 32

    %x.extract.trunc = trunc i64 %x.extract.shift.1 to i16

    CodeGen will recognize the pattern in BB2 and generate BitExtract

    instruction.

    Return true if any changes are made.

    Defined at line 2455 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool isIntegerWideningViableForSlice (const Slice & S, uint64_t AllocBeginOffset, Type * AllocaTy, const DataLayout & DL, bool & WholeAllocaOp)

    Test whether a slice of an alloca is valid for integer widening.

    This implements the necessary checking for the

    test below on a single slice of the alloca.

    Defined at line 2458 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool removeRedundantDbgLocsUsingBackwardScan (const BasicBlock * BB, FunctionVarLocsBuilder & FnVarLocs)

    Remove redundant definitions within sequences of consecutive location defs.

    This is done using a backward scan to keep the last def describing a

    specific variable/fragment.

    This implements removeRedundantDbgInstrsUsingBackwardScan from

    lib/Transforms/Utils/BasicBlockUtils.cpp for locations described with

    FunctionVarLocsBuilder instead of with intrinsics.

    Defined at line 2460 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • LLVMValueRef LLVMGetPreviousFunction (LLVMValueRef Fn)

    Decrement a Function iterator to the previous Function.

    Returns NULL if the iterator was already at the beginning and there are

    no previous functions.

    Defined at line 2461 of file llvm/lib/IR/Core.cpp

  • bool hasVRegCycleUse (const SUnit * SU)

    Return true if this SUnit uses a CopyFromReg node marked as a VRegCycle. This

    means a node that defines the VRegCycle has not been scheduled yet.

    Defined at line 2461 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • const DIExpression * computeExprForSpill (const MachineInstr & MI, Register SpillReg)

    Defined at line 2462 of file llvm/lib/CodeGen/MachineInstr.cpp

  • bool parseRefinementStep (StringRef In, size_t & Position, uint8_t & Value)

    Return the character position and value (a single numeric character) of a

    customized refinement operation in the input string if it exists. Return

    false if there is no customized refinement step count.

    Defined at line 2463 of file llvm/lib/CodeGen/TargetLoweringBase.cpp

  • void AddFunctionInfo (GsymCreator & GC, const char * FuncName, uint64_t FuncAddr, const char * SourcePath, const char * HeaderPath)

    Helper function to quickly create a FunctionInfo in a GsymCreator for testing.

    Defined at line 2463 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • void replacePhiSrc (MachineInstr & Phi, Register OrigReg, Register NewReg, MachineBasicBlock * NewMBB)

    Defined at line 2466 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • void writeDILexicalBlock (raw_ostream & Out, const DILexicalBlock * N, AsmWriterContext & WriterCtx)

    Defined at line 2466 of file llvm/lib/IR/AsmWriter.cpp

  • int matchShuffleAsBitRotate (ArrayRef Mask, int NumSubElts)

    Try to lower a vector shuffle as a bit rotation.

    Look for a repeated rotation pattern in each sub group.

    Returns an element-wise left bit rotation amount or -1 if failed.

    Defined at line 2468 of file llvm/lib/IR/Instructions.cpp

  • void LLVMDeleteFunction (LLVMValueRef Fn)

    Remove a function from its containing module and deletes it.

    Defined at line 2469 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMHasPersonalityFn (LLVMValueRef Fn)

    Check whether the given function has a personality function.

    Defined at line 2473 of file llvm/lib/IR/Core.cpp

  • MCDisassembler * createX86Disassembler (const Target & T, const MCSubtargetInfo & STI, MCContext & Ctx)

    Defined at line 2474 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • bool OptimizeStaticIFuncs (Module & M)

    Find IFuncs that have resolvers that always point at the same statically

    known callee, and replace their callers with a direct call.

    Defined at line 2474 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void writeDILexicalBlockFile (raw_ostream & Out, const DILexicalBlockFile * N, AsmWriterContext & WriterCtx)

    Defined at line 2477 of file llvm/lib/IR/AsmWriter.cpp

  • Value * findOutputValueInRegion (OutlinableRegion & Region, unsigned int OutputCanon)

    For the

    number passed in find the value represented by this

    canonical number. If it is from a PHINode, we pick the first incoming

    value and return that Value instead.

    Parameters

    Region - The OutlinableRegion to get the Value from.
    OutputCanon - The canonical number to find the Value from.

    Defined at line 2479 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • bool BUHasStall (SUnit * SU, int Height, RegReductionPQBase * SPQ)

    Check for either a dependence (latency) or resource (hazard) stall.

    Note: The ScheduleHazardRecognizer interface requires a non-const SU.

    Defined at line 2480 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • bool checkResourceLimit (unsigned int LFactor, unsigned int Count, unsigned int Latency, bool AfterSchedNode)

    Given a Count of resource usage and a Latency value, return true if a

    SchedBoundary becomes resource limited.

    If we are checking after scheduling a node, we should return true when

    we just reach the resource limit.

    Defined at line 2480 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • void licm (VPlan & Plan)

    Move loop-invariant recipes out of the vector loop region in

    Defined at line 2480 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void LLVMInitializeX86Disassembler ()

    Defined at line 2481 of file llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp

  • LLVMValueRef LLVMGetPersonalityFn (LLVMValueRef Fn)

    Obtain the personality function attached to the function.

    Defined at line 2477 of file llvm/lib/IR/Core.cpp

  • void LLVMSetPersonalityFn (LLVMValueRef Fn, LLVMValueRef PersonalityFn)

    Set the personality function attached to the function.

    Defined at line 2481 of file llvm/lib/IR/Core.cpp

  • Instruction * foldTruncShuffle (ShuffleVectorInst & Shuf, bool IsBigEndian)

    Convert a narrowing shuffle of a bitcasted vector into a vector truncate.

    Example (little endian):

    shuf (bitcast

    <

    4 x i16> X to

    <

    8 x i8>),

    <

    0, 2, 4, 6> --> trunc X to

    <

    4 x i8>

    Defined at line 2481 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • SDValue foldSelectWithIdentityConstant (SDNode * N, SelectionDAG & DAG, bool ShouldCommuteOperands)

    This inverts a canonicalization in IR that replaces a variable select arm

    with an identity constant. Codegen improves if we re-use the variable

    operand rather than load a constant. This can also be converted into a

    masked vector operation if the target supports it.

    Defined at line 2484 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void emitRegisterMatchErrorFunc (AsmMatcherInfo & Info, raw_ostream & OS)

    Defined at line 2485 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • unsigned int LLVMGetIntrinsicID (LLVMValueRef Fn)

    Obtain the ID number from a function instance.

    Defined at line 2486 of file llvm/lib/IR/Core.cpp

  • int getOpEnabled (bool IsSqrt, EVT VT, StringRef Override)

    For the input attribute string, return one of the ReciprocalEstimate enum

    status values (enabled, disabled, or not specified) for this operation on

    the specified data type.

    Defined at line 2486 of file llvm/lib/CodeGen/TargetLoweringBase.cpp

  • bool DeleteDeadIFuncs (Module & M, SmallPtrSetImpl<const Comdat *> & NotDiscardableComdats)

    Defined at line 2488 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void writeDINamespace (raw_ostream & Out, const DINamespace * N, AsmWriterContext & WriterCtx)

    Defined at line 2489 of file llvm/lib/IR/AsmWriter.cpp

  • bool denormModeCompatible (DenormalMode CallerMode, DenormalMode CalleeMode)

    Callees with dynamic denormal modes are compatible with any caller mode.

    Defined at line 2489 of file llvm/lib/IR/Attributes.cpp

  • int BUCompareLatency (SUnit * left, SUnit * right, bool checkPref, RegReductionPQBase * SPQ)

    Return -1 if left has higher priority, 1 if right has higher priority.

    Return 0 if latency-based priority is equivalent.

    Defined at line 2490 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • const Instruction * getInvariantGroupClobberingInstruction (Instruction & I, DominatorTree & DT)

    Defined at line 2491 of file llvm/lib/Analysis/MemorySSA.cpp

  • Intrinsic::ID llvm_map_to_intrinsic_id (unsigned int ID)

    Defined at line 2492 of file llvm/lib/IR/Core.cpp

  • bool MayAutorelease (const CallBase & CB, unsigned int Depth)

    Interprocedurally determine if calls made by the given call site can

    possibly produce autoreleases.

    Defined at line 2494 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp

  • LLVMValueRef LLVMGetIntrinsicDeclaration (LLVMModuleRef Mod, unsigned int ID, LLVMTypeRef * ParamTypes, size_t ParamCount)

    Get or insert the declaration of an intrinsic. For overloaded intrinsics,

    parameter types must be provided to uniquely identify an overload.

    Defined at line 2497 of file llvm/lib/IR/Core.cpp

  • void printArchiveHeaders (StringRef Filename, Archive * A, bool verbose, bool print_offset, StringRef ArchitectureName)

    Defined at line 2497 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void writeDICommonBlock (raw_ostream & Out, const DICommonBlock * N, AsmWriterContext & WriterCtx)

    Defined at line 2499 of file llvm/lib/IR/AsmWriter.cpp

  • bool collectInstructionDeps (SmallMapVector<const Instruction *, bool, 8> * Deps, const Value * V, SmallMapVector<const Instruction *, bool, 8> * Necessary, unsigned int Depth)

    Collect dependencies on V recursively. This is used for the cost analysis in

    `shouldKeepJumpConditionsTogether`.

    Defined at line 2502 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • Instruction * optimizeVectorResizeWithIntegerBitCasts (Value * InVal, VectorType * DestTy, InstCombinerImpl & IC)

    This input value (which is known to have vector type) is being zero extended

    or truncated to the specified vector type. Since the zext/trunc is done

    using an integer type, we have a (bitcast(cast(bitcast))) pattern,

    endianness will impact which end of the vector that is extended or

    truncated.

    A vector is always stored with index 0 at the lowest address, which

    corresponds to the most significant bits for a big endian stored integer and

    the least significant bits for little endian. A trunc/zext of an integer

    impacts the big end of the integer. Thus, we need to add/remove elements at

    the front of the vector for big endian targets, and the back of the vector

    for little endian targets.

    Try to replace it with a shuffle (and vector/vector bitcast) if possible.

    The source and destination vector types may have different element types.

    Defined at line 2502 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • bool collectVersions (Value * V, SmallVectorImpl<Function *> & Versions, function_ref<TargetTransformInfo &(Function &)> GetTTI)

    Follows the use-def chain of

    backwards until it finds a Function,

    in which case it collects in

    Return true on successful

    use-def chain traversal, false otherwise.

    Defined at line 2503 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • Expected FinalizeEncodeAndDecode (GsymCreator & GC)

    Finalize a GsymCreator, encode it and decode it and return the error or

    GsymReader that was successfully decoded.

    Defined at line 2504 of file llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp

  • const char * LLVMIntrinsicGetName (unsigned int ID, size_t * NameLength)

    Retrieves the name of an intrinsic.

    Defined at line 2506 of file llvm/lib/IR/Core.cpp

  • bool checkDenormMode (const Function & Caller, const Function & Callee)

    Defined at line 2506 of file llvm/lib/IR/Attributes.cpp

  • void legacyCSE (BasicBlock * BB)

    FIXME: This legacy common-subexpression-elimination routine is scheduled for

    removal, in favor of the VPlan-based one.

    Defined at line 2507 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • bool ValidateArchFlags ()

    Defined at line 2510 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void writeDIMacro (raw_ostream & Out, const DIMacro * N, AsmWriterContext & WriterCtx)

    Defined at line 2511 of file llvm/lib/IR/AsmWriter.cpp

  • void emitValidateOperandClass (const CodeGenTarget & Target, AsmMatcherInfo & Info, raw_ostream & OS)

    emitValidateOperandClass - Emit the function to validate an operand class.

    Defined at line 2511 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • LLVMTypeRef LLVMIntrinsicGetType (LLVMContextRef Ctx, unsigned int ID, LLVMTypeRef * ParamTypes, size_t ParamCount)

    Retrieves the type of an intrinsic. For overloaded intrinsics, parameter

    types must be provided to uniquely identify an overload.

    Defined at line 2513 of file llvm/lib/IR/Core.cpp

  • void ARMEmitUnwindInfo (MCStreamer & streamer, WinEH::FrameInfo * info, bool TryPacked)

    Populate the .xdata section. The format of .xdata on ARM is documented at

    https://docs.microsoft.com/en-us/cpp/build/arm-exception-handling

    Defined at line 2517 of file llvm/lib/MC/MCWin64EH.cpp

  • char * LLVMIntrinsicCopyOverloadedName (unsigned int ID, LLVMTypeRef * ParamTypes, size_t ParamCount, size_t * NameLength)

    Deprecated: Use LLVMIntrinsicCopyOverloadedName2 instead.

    Defined at line 2520 of file llvm/lib/IR/Core.cpp

  • bool ValidatePrefixes (StringRef Kind, StringSet<> & UniquePrefixes, ArrayRef SuppliedPrefixes)

    Defined at line 2520 of file llvm/lib/FileCheck/FileCheck.cpp

  • bool hoistGEP (Instruction & I, Loop & L, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU, AssumptionCache * AC, DominatorTree * DT)

    Reassociate gep (gep ptr, idx1), idx2 to gep (gep ptr, idx2), idx1 if

    this allows hoisting the inner GEP.

    Defined at line 2520 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void writeDIMacroFile (raw_ostream & Out, const DIMacroFile * N, AsmWriterContext & WriterCtx)

    Defined at line 2522 of file llvm/lib/IR/AsmWriter.cpp

  • Instruction * narrowVectorSelect (ShuffleVectorInst & Shuf, InstCombiner::BuilderTy & Builder)

    Match a shuffle-select-shuffle pattern where the shuffles are widening and

    narrowing (concatenating with poison and extracting back to the original

    length). This allows replacing the wide select with a narrow select.

    Defined at line 2522 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • bool checkStrictFP (const Function & Caller, const Function & Callee)

    Defined at line 2523 of file llvm/lib/IR/Attributes.cpp

  • char * LLVMIntrinsicCopyOverloadedName2 (LLVMModuleRef Mod, unsigned int ID, LLVMTypeRef * ParamTypes, size_t ParamCount, size_t * NameLength)

    Copies the name of an overloaded intrinsic identified by a given list of

    parameter types.

    Unlike LLVMIntrinsicGetName, the caller is responsible for freeing the

    returned string.

    This version also supports unnamed types.

    Defined at line 2529 of file llvm/lib/IR/Core.cpp

  • unsigned int estimateElementCount (ElementCount VF, optional VScale)

    This function attempts to return a value that represents the ElementCount

    at runtime. For fixed-width VFs we know this precisely at compile

    time, but for scalable VFs we calculate it based on an estimate of the

    vscale value.

    Defined at line 2530 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • Error addSpeculationOrder (Session & S)

    Defined at line 2530 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • template <typename AttrClass>
    bool isEqual (const Function & Caller, const Function & Callee)

    Defined at line 2531 of file llvm/lib/IR/Attributes.cpp

  • InstructionCost findCostForOutputBlocks (Module & M, OutlinableGroup & CurrentGroup, TargetTransformInfo & TTI)

    Find the extra instructions needed to handle any output values for the

    region.

    Parameters

    M [in] - The Module to outline from.
    CurrentGroup [in] - The collection of OutlinableRegions to analyze.
    TTI [in] - The TargetTransformInfo used to collect information for new instruction costs.

    Defined at line 2531 of file llvm/lib/Transforms/IPO/IROutliner.cpp

  • Value * simplifyXorInst (Value * , Value * , const SimplifyQuery & , unsigned int )

    Given operands for a Xor, see if we can fold the result.

    If not, this returns null.

    Defined at line 2531 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void writeDIModule (raw_ostream & Out, const DIModule * N, AsmWriterContext & WriterCtx)

    Defined at line 2532 of file llvm/lib/IR/AsmWriter.cpp

  • void rematerializeLiveValues (CallBase * Call, PartiallyConstructedSafepointRecord & Info, int & PointerToBase, int & RematerizationCandidates, TargetTransformInfo & TTI)

    From the statepoint live set pick values that are cheaper to recompute then

    to relocate. Remove this values from the live set, rematerialize them after

    statepoint and record them in "Info" structure. Note that similar to

    relocated values we don't do any user adjustments here.

    Defined at line 2532 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool isEqual (const Function & Caller, const Function & Callee, const StringRef & AttrName)

    Defined at line 2536 of file llvm/lib/IR/Attributes.cpp

  • unsigned int LLVMLookupIntrinsicID (const char * Name, size_t NameLen)

    Obtain the intrinsic ID number which matches the given function name.

    Defined at line 2539 of file llvm/lib/IR/Core.cpp

  • bool isOperandClass (const TreePatternNode & N, StringRef Class)

    Defined at line 2540 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool isIntersect (SmallSetVector<SUnit *, 8> & Set1, const NodeSet & Set2, SmallSetVector<SUnit *, 8> & Result)

    Return true if Set1 contains elements in Set2. The elements in common

    are returned in a different container.

    Defined at line 2541 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • Instruction * canonicalizeSelectToShuffle (SelectInst & SI)

    Try to transform a vector select with a constant condition vector into a

    shuffle for easier combining with other shuffles and insert/extract.

    Defined at line 2541 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool BURRSort (SUnit * left, SUnit * right, RegReductionPQBase * SPQ)

    Defined at line 2541 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • LLVMBool LLVMIntrinsicIsOverloaded (unsigned int ID)

    Obtain if the intrinsic identified by the given ID is overloaded.

    Defined at line 2543 of file llvm/lib/IR/Core.cpp

  • bool isPowerOfTwoRecurrence (const PHINode * PN, bool OrZero, SimplifyQuery & Q, unsigned int Depth)

    Try to detect a recurrence that the value of the induction variable is

    always a power of two (or zero).

    Defined at line 2545 of file llvm/lib/Analysis/ValueTracking.cpp

  • int getOpRefinementSteps (bool IsSqrt, EVT VT, StringRef Override)

    For the input attribute string, return the customized refinement step count

    for this operation on the specified data type. If the step count does not

    exist, return the ReciprocalEstimate enum value for unspecified.

    Defined at line 2546 of file llvm/lib/CodeGen/TargetLoweringBase.cpp

  • template <typename AttrClass>
    void setAND (Function & Caller, const Function & Callee)

    Compute the logical AND of the attributes of the caller and the

    callee.

    This function sets the caller's attribute to false if the callee's attribute

    is false.

    Defined at line 2547 of file llvm/lib/IR/Attributes.cpp

  • void writeDITemplateTypeParameter (raw_ostream & Out, const DITemplateTypeParameter * N, AsmWriterContext & WriterCtx)

    Defined at line 2547 of file llvm/lib/IR/AsmWriter.cpp

  • bool OptimizeNonTrivialIFuncs (Module & M, function_ref<TargetTransformInfo &(Function &)> GetTTI)

    Try to statically resolve calls to versioned functions when possible. First

    we identify the function versions which are associated with an IFUNC symbol.

    We do that by examining the resolver function of the IFUNC. Once we have

    collected all the function versions, we sort them in decreasing priority

    order. This is necessary for determining the most suitable callee version

    for each caller version. We then collect all the callsites to versioned

    functions. The static resolution is performed by comparing the feature sets

    between callers and callees. Specifically:

    * Start a walk over caller and callee lists simultaneously in order of

    decreasing priority.

    * Statically resolve calls from the current caller to the current callee,

    iff the caller feature bits are a superset of the callee feature bits.

    * For FMV callers, as long as the caller feature bits are a subset of the

    callee feature bits, advance to the next callee. This effectively prevents

    considering the current callee as a candidate for static resolution by

    following callers (explanation: preceding callers would not have been

    selected in a hypothetical runtime execution).

    * Advance to the next caller.

    Presentation in EuroLLVM2025:

    https://www.youtube.com/watch?v=k54MFimPz-A

    &t

    =867s

    Defined at line 2547 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • unsigned int LLVMGetFunctionCallConv (LLVMValueRef Fn)

    Obtain the calling function of a function.

    The returned value corresponds to the LLVMCallConv enumeration.

    Defined at line 2548 of file llvm/lib/IR/Core.cpp

  • optional keywordToLoc (Kind Tok)

    Defined at line 2549 of file llvm/lib/AsmParser/LLParser.cpp

  • void emitTooManyOperandsError (TreePattern & TP, StringRef InstName, unsigned int Expected, unsigned int Actual)

    Defined at line 2551 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void LLVMSetFunctionCallConv (LLVMValueRef Fn, unsigned int CC)

    Set the calling convention of a function.

    Parameters

    Fn Function to operate on
    CC LLVMCallConv to set calling convention to

    Defined at line 2552 of file llvm/lib/IR/Core.cpp

  • bool isIntegerWideningViable (Partition & P, Type * AllocaTy, const DataLayout & DL)

    Test whether the given alloca partition's integer operations can be

    widened to promotable ones.

    This is a quick test to check whether we can rewrite the integer loads and

    stores to a particular alloca into wider loads and stores and be able to

    promote the resulting alloca.

    Defined at line 2553 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • Instruction * foldShuffleOfUnaryOps (ShuffleVectorInst & Shuf, InstCombiner::BuilderTy & Builder)

    Canonicalize FP negate/abs after shuffle.

    Defined at line 2556 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • bool removeRedundantDbgLocsUsingForwardScan (const BasicBlock * BB, FunctionVarLocsBuilder & FnVarLocs)

    Remove redundant location defs using a forward scan. This can remove a

    location definition that is redundant due to indicating that a variable has

    the same value as is already being indicated by an earlier def.

    This implements removeRedundantDbgInstrsUsingForwardScan from

    lib/Transforms/Utils/BasicBlockUtils.cpp for locations described with

    FunctionVarLocsBuilder instead of with intrinsics

    Defined at line 2556 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • const char * LLVMGetGC (LLVMValueRef Fn)

    Obtain the name of the garbage collector to use during code

    generation.

    Defined at line 2557 of file llvm/lib/IR/Core.cpp

  • void emitTooFewOperandsError (TreePattern & TP, StringRef InstName, unsigned int Actual)

    Defined at line 2557 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool isOperator (TokenKind kind)

    Defined at line 2557 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • bool despeculateCountZeros (IntrinsicInst * CountZeros, LoopInfo & LI, const TargetLowering * TLI, const DataLayout * DL, ModifyDT & ModifiedDT, SmallPtrSet<BasicBlock *, 32> & FreshBBs, bool IsHugeFunc)

    If counting leading or trailing zeros is an expensive operation and a zero

    input is defined, add a check for zero to avoid calling the intrinsic.

    We want to transform:

    %z = call i64

    .cttz.i64(i64 %A, i1 false)

    into:

    entry:

    %cmpz = icmp eq i64 %A, 0

    br i1 %cmpz, label %cond.end, label %cond.false

    cond.false:

    %z = call i64

    .cttz.i64(i64 %A, i1 true)

    br label %cond.end

    cond.end:

    %ctz = phi i64 [ 64, %entry ], [ %z, %cond.false ]

    If the transform is performed, return true and set ModifiedDT to true.

    Defined at line 2557 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • void writeDITemplateValueParameter (raw_ostream & Out, const DITemplateValueParameter * N, AsmWriterContext & WriterCtx)

    Defined at line 2558 of file llvm/lib/IR/AsmWriter.cpp

  • template <typename AttrClass>
    void setOR (Function & Caller, const Function & Callee)

    Compute the logical OR of the attributes of the caller and the

    callee.

    This function sets the caller's attribute to true if the callee's attribute

    is true.

    Defined at line 2559 of file llvm/lib/IR/Attributes.cpp

  • Error removeUnneededSections (Object & Obj)

    Defined at line 2560 of file llvm/lib/ObjCopy/ELF/ELFObject.cpp

  • void LLVMSetGC (LLVMValueRef Fn, const char * Name)

    Define the garbage collector to use during code generation.

    Defined at line 2562 of file llvm/lib/IR/Core.cpp

  • optional keywordToModRef (Kind Tok)

    Defined at line 2566 of file llvm/lib/AsmParser/LLParser.cpp

  • LocationSize getSpillSlotSize (const MMOList & Accesses, const MachineFrameInfo & MFI)

    Defined at line 2567 of file llvm/lib/CodeGen/MachineInstr.cpp

  • void adjustCallerSSPLevel (Function & Caller, const Function & Callee)

    If the inlined function had a higher stack protection level than the

    calling function, then bump up the caller's stack protection level.

    Defined at line 2567 of file llvm/lib/IR/Attributes.cpp

  • Type * maybeVectorizeType (Type * Ty, ElementCount VF)

    Defined at line 2568 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • LLVMValueRef LLVMGetPrefixData (LLVMValueRef Fn)

    Gets the prefix data associated with a function. Only valid on functions, and

    only if LLVMHasPrefixData returns true.

    See https://llvm.org/docs/LangRef.html#prefix-data

    Defined at line 2570 of file llvm/lib/IR/Core.cpp

  • void writeDIGlobalVariable (raw_ostream & Out, const DIGlobalVariable * N, AsmWriterContext & WriterCtx)

    Defined at line 2572 of file llvm/lib/IR/AsmWriter.cpp

  • bool isMultipleOfTypeSize (unsigned int Value, Type * Ty)

    Defined at line 2573 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • LLVMBool LLVMHasPrefixData (LLVMValueRef Fn)

    Check if a given function has prefix data. Only valid on functions.

    See https://llvm.org/docs/LangRef.html#prefix-data

    Defined at line 2575 of file llvm/lib/IR/Core.cpp

  • unsigned int getTypeSizeIndex (unsigned int Value, Type * Ty)

    Defined at line 2577 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • bool hoistAdd (Predicate Pred, Value * VariantLHS, Value * InvariantRHS, ICmpInst & ICmp, Loop & L, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU, AssumptionCache * AC, DominatorTree * DT)

    Try to turn things like "LV + C1 < C2" into "LV < C2 - C1". Here

    C1 and C2 are loop invariants and LV is a loop-variant.

    Defined at line 2578 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void LLVMSetPrefixData (LLVMValueRef Fn, LLVMValueRef prefixData)

    Sets the prefix data for the function. Only valid on functions.

    See https://llvm.org/docs/LangRef.html#prefix-data

    Defined at line 2580 of file llvm/lib/IR/Core.cpp

  • Instruction * canonicalizeScalarSelectOfVecs (SelectInst & Sel, InstCombinerImpl & IC)

    If we have a select of vectors with a scalar condition, try to convert that

    to a vector select by splatting the condition. A splat may get folded with

    other operations in IR and having all operands of a select be vector types

    is likely better for vector codegen.

    Defined at line 2580 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • Error addSessionInputs (Session & S)

    Defined at line 2583 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • LLVMValueRef LLVMGetPrologueData (LLVMValueRef Fn)

    Gets the prologue data associated with a function. Only valid on functions,

    and only if LLVMHasPrologueData returns true.

    See https://llvm.org/docs/LangRef.html#prologue-data

    Defined at line 2586 of file llvm/lib/IR/Core.cpp

  • Instruction * foldCastShuffle (ShuffleVectorInst & Shuf, InstCombiner::BuilderTy & Builder)

    Canonicalize casts after shuffle.

    Defined at line 2589 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • LLVMBool LLVMHasPrologueData (LLVMValueRef Fn)

    Check if a given function has prologue data. Only valid on functions.

    See https://llvm.org/docs/LangRef.html#prologue-data

    Defined at line 2591 of file llvm/lib/IR/Core.cpp

  • void writeDILocalVariable (raw_ostream & Out, const DILocalVariable * N, AsmWriterContext & WriterCtx)

    Defined at line 2591 of file llvm/lib/IR/AsmWriter.cpp

  • bool collectInsertionElements (Value * V, unsigned int Shift, SmallVectorImpl<Value *> & Elements, Type * VecEltTy, bool isBigEndian)

    V is a value which is inserted into a vector of VecEltTy.

    Look through the value to see if we can decompose it into

    insertions into the vector. See the example in the comment for

    OptimizeIntegerToVectorInsertions for the pattern this handles.

    The type of V is always a non-zero multiple of VecEltTy's size.

    Shift is the number of bits between the lsb of V and the lsb of

    the vector.

    This returns false if the pattern can't be matched or true if it can,

    filling in Elements with the elements found here.

    Defined at line 2591 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • Value * extractInteger (const DataLayout & DL, IRBuilderTy & IRB, Value * V, IntegerType * Ty, uint64_t Offset, const Twine & Name)

    Defined at line 2594 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • void LLVMSetPrologueData (LLVMValueRef Fn, LLVMValueRef prologueData)

    Sets the prologue data for the function. Only valid on functions.

    See https://llvm.org/docs/LangRef.html#prologue-data

    Defined at line 2596 of file llvm/lib/IR/Core.cpp

  • void adjustCallerStackProbes (Function & Caller, const Function & Callee)

    If the inlined function required stack probes, then ensure that

    the calling function has those too.

    Defined at line 2597 of file llvm/lib/IR/Attributes.cpp

  • bool inlineGetBaseAndOffset (Function & F, SmallVectorImpl<CallInst *> & Intrinsics, int & DVCache, int & KnownBases)

    Defined at line 2598 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • Instruction * foldSelectCmpBitcasts (SelectInst & Sel, InstCombiner::BuilderTy & Builder)

    Reuse bitcasted operands between a compare and select:

    select (cmp (bitcast C), (bitcast D)), (bitcast' C), (bitcast' D) -->

    bitcast (select (cmp (bitcast C), (bitcast D)), (bitcast C), (bitcast D))

    Defined at line 2601 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • void LLVMAddAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, LLVMAttributeRef A)

    Add an attribute to a function.

    Defined at line 2602 of file llvm/lib/IR/Core.cpp

  • CallInst * createPopcntIntrinsic (int & IRBuilder, Value * Val, const DebugLoc & DL)

    Defined at line 2602 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • bool isImpliedToBeAPowerOfTwoFromCond (const Value * V, bool OrZero, const Value * Cond, bool CondIsTrue)

    Return true if we can infer that

    is known to be a power of 2 from

    dominating condition

    (e.g., ctpop(V) == 1).

    Defined at line 2602 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional getConstantCoefficient (const SCEV * Expr)

    Given a SCEVMulExpr, returns its first operand if its first operand is a

    constant and the product doesn't overflow in a signed sense. Otherwise,

    returns std::nullopt. For example, given (10 * X * Y)

    <nsw

    >, it returns 10.

    Notably, if it doesn't have nsw, the multiplication may overflow, and if

    so, it may not a multiple of 10.

    Defined at line 2603 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • bool eliminateDeadStores (Function & F, AliasAnalysis & AA, MemorySSA & MSSA, DominatorTree & DT, PostDominatorTree & PDT, const TargetLibraryInfo & TLI, const LoopInfo & LI)

    Defined at line 2605 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • unsigned int LLVMGetAttributeCountAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx)

    Defined at line 2607 of file llvm/lib/IR/Core.cpp

  • bool okayForPHIOfOps (const Instruction * I)

    Defined at line 2607 of file llvm/lib/Transforms/Scalar/NewGVN.cpp

  • void writeDILabel (raw_ostream & Out, const DILabel * N, AsmWriterContext & WriterCtx)

    Defined at line 2607 of file llvm/lib/IR/AsmWriter.cpp

  • void adjustCallerStackProbeSize (Function & Caller, const Function & Callee)

    If the inlined function defines the size of guard region

    on the stack, then ensure that the calling function defines a guard region

    that is no larger.

    Defined at line 2607 of file llvm/lib/IR/Attributes.cpp

  • void LLVMGetAttributesAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, LLVMAttributeRef * Attrs)

    Defined at line 2612 of file llvm/lib/IR/Core.cpp

  • Value * upgradeNVVMIntrinsicCall (StringRef Name, CallBase * CI, Function * F, IRBuilder<> & Builder)

    Defined at line 2612 of file llvm/lib/IR/AutoUpgrade.cpp

  • CallInst * createFFSIntrinsic (int & IRBuilder, Value * Val, const DebugLoc & DL, bool ZeroCheck, Intrinsic::ID IID)

    Defined at line 2613 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • uint16_t RegSizeInBits (const MCRegisterInfo & MRI, MCRegister RegNo)

    Defined at line 2613 of file llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp

  • Type * getCompareTy (Value * Op)

    Defined at line 2614 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool removeUndefDbgLocsFromEntryBlock (const BasicBlock * BB, FunctionVarLocsBuilder & FnVarLocs)

    Defined at line 2615 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • void disassembleObject (ObjectFile * Obj, bool InlineRelocs, raw_ostream & OS)

    Defined at line 2616 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • LLVMAttributeRef LLVMGetEnumAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, unsigned int KindID)

    Defined at line 2619 of file llvm/lib/IR/Core.cpp

  • Value * insertInteger (const DataLayout & DL, IRBuilderTy & IRB, Value * Old, Value * V, uint64_t Offset, const Twine & Name)

    Defined at line 2619 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • NodeType GetPromotionOpcode (EVT OpVT, EVT RetVT)

    ===----------------------------------------------------------------------===//

    Float Operand Promotion

    ===----------------------------------------------------------------------===//

    Defined at line 2621 of file llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp

  • Value * extractEquivalentCondition (Value * V, CmpPredicate Pred, Value * LHS, Value * RHS)

    Rummage around inside V looking for something equivalent to the comparison

    "LHS Pred RHS". Return such a value if found, otherwise return null.

    Helper function for analyzing max/min idioms.

    Defined at line 2621 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void ProfileCondOpInit (FoldingSetNodeID & ID, ArrayRef Conds, ArrayRef Vals, const RecTy * ValType)

    Defined at line 2622 of file llvm/lib/TableGen/Record.cpp

  • void writeDIExpression (raw_ostream & Out, const DIExpression * N, AsmWriterContext & WriterCtx)

    Defined at line 2623 of file llvm/lib/IR/AsmWriter.cpp

  • uint64_t globalSize (const llvm::GlobalVariable & G)

    Defined at line 2626 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • LLVMAttributeRef LLVMGetStringAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, const char * K, unsigned int KLen)

    Defined at line 2626 of file llvm/lib/IR/Core.cpp

  • SDValue foldAddSubBoolOfMaskedVal (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    Defined at line 2630 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool shouldTagGlobal (const llvm::GlobalVariable & G)

    Defined at line 2632 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • void LLVMRemoveEnumAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, unsigned int KindID)

    Defined at line 2633 of file llvm/lib/IR/Core.cpp

  • NodeType GetPromotionOpcodeStrict (EVT OpVT, EVT RetVT)

    Defined at line 2633 of file llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp

  • void adjustMinLegalVectorWidth (Function & Caller, const Function & Callee)

    If the inlined function defines a min legal vector width, then ensure

    the calling function has the same or larger min legal vector width. If the

    caller has the attribute, but the callee doesn't, we need to remove the

    attribute from the caller since we can't make any guarantees about the

    caller's requirements.

    This function is called after the inlining decision has been made so we have

    to merge the attribute this way. Heuristics that would use

    min-legal-vector-width to determine inline compatibility would need to be

    handled as part of inline cost analysis.

    Defined at line 2635 of file llvm/lib/IR/Attributes.cpp

  • TargetInfo getTargetInfo (const Triple & TT, const SubtargetFeatures & TF)

    Defined at line 2635 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • unsigned int keywordToFPClassTest (Kind Tok)

    Defined at line 2636 of file llvm/lib/AsmParser/LLParser.cpp

  • bool hoistSub (Predicate Pred, Value * VariantLHS, Value * InvariantRHS, ICmpInst & ICmp, Loop & L, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU, AssumptionCache * AC, DominatorTree * DT)

    Try to reassociate and hoist the following two patterns:

    LV - C1

    <

    C2 --> LV

    <

    C1 + C2,

    C1 - LV

    <

    C2 --> LV > C1 - C2.

    Defined at line 2636 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool isAllocDisjoint (const Value * V)

    Return true if the underlying object (storage) must be disjoint from

    storage returned by any noalias return call.

    Defined at line 2640 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void emitIsSubclass (CodeGenTarget & Target, int & Infos, raw_ostream & OS)

    emitIsSubclass - Emit the subclass predicate function.

    Defined at line 2644 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • bool markAliveBlocks (Function & F, SmallPtrSetImpl<BasicBlock *> & Reachable, DomTreeUpdater * DTU)

    Defined at line 2646 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool insertParsePoints (Function & F, DominatorTree & DT, TargetTransformInfo & TTI, SmallVectorImpl<CallBase *> & ToUpdate, int & DVCache, int & KnownBases)

    Defined at line 2646 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void writeDIArgList (raw_ostream & Out, const DIArgList * N, AsmWriterContext & WriterCtx, bool FromValue)

    Defined at line 2648 of file llvm/lib/IR/AsmWriter.cpp

  • AtomicOrdering addReleaseOrdering (AtomicOrdering AO)

    Defined at line 2652 of file llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp

  • Value * extractVector (IRBuilderTy & IRB, Value * V, unsigned int BeginIndex, unsigned int EndIndex, const Twine & Name)

    Defined at line 2652 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • template <class ELFT>
    Error checkHashTable (const ELFDumper<ELFT> & Dumper, const typename ELFT::Hash * H, bool * IsHeaderValid)

    Defined at line 2653 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • Instruction * foldIdentityExtractShuffle (ShuffleVectorInst & Shuf)

    Try to fold an extract subvector operation.

    Defined at line 2653 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • GEPNoWrapFlags getMergedGEPNoWrapFlags (GEPOperator & GEP1, GEPOperator & GEP2)

    Determine nowrap flags for (gep (gep p, x), y) to (gep p, (x + y))

    transform.

    Defined at line 2656 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void adjustNullPointerValidAttr (Function & Caller, const Function & Callee)

    If the inlined function has null_pointer_is_valid attribute,

    set this attribute in the caller post inlining.

    Defined at line 2656 of file llvm/lib/IR/Attributes.cpp

  • void initializeReassociateLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 2660 of file llvm/lib/Transforms/Scalar/Reassociate.cpp

  • bool haveNonOverlappingStorage (const Value * V1, const Value * V2)

    Return true if V1 and V2 are each the base of some distict storage region

    [V, object_size(V)] which do not overlap. Note that zero sized regions

    *are* possible, and that zero sized regions do not overlap with any other.

    Defined at line 2660 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void writeDIGlobalVariableExpression (raw_ostream & Out, const DIGlobalVariableExpression * N, AsmWriterContext & WriterCtx)

    Defined at line 2663 of file llvm/lib/IR/AsmWriter.cpp

  • Instruction * foldSelectGEP (GetElementPtrInst & GEP, InstCombiner::BuilderTy & Builder)

    Thread a GEP operation with constant indices through the constant true/false

    arms of a select.

    Defined at line 2663 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void tagGlobalDefinition (Module & M, GlobalVariable * G)

    Defined at line 2667 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • Value * foldSelectCmpXchg (SelectInst & SI)

    Try to eliminate select instructions that test the returned flag of cmpxchg

    instructions.

    If a select instruction tests the returned flag of a cmpxchg instruction and

    selects between the returned value of the cmpxchg instruction its compare

    operand, the result of the select will always be equal to its false value.

    For example:

    %cmpxchg = cmpxchg ptr %ptr, i64 %compare, i64 %new_value seq_cst seq_cst

    %val = extractvalue { i64, i1 } %cmpxchg, 0

    %success = extractvalue { i64, i1 } %cmpxchg, 1

    %sel = select i1 %success, i64 %compare, i64 %val

    ret i64 %sel

    The returned value of the cmpxchg instruction (%val) is the original value

    located at %ptr prior to any update. If the cmpxchg operation succeeds, %val

    must have been equal to %compare. Thus, the result of the select is always

    equal to %val, and the code can be simplified to:

    %cmpxchg = cmpxchg ptr %ptr, i64 %compare, i64 %new_value seq_cst seq_cst

    %val = extractvalue { i64, i1 } %cmpxchg, 0

    ret i64 %val

    Defined at line 2668 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • void writeDIObjCProperty (raw_ostream & Out, const DIObjCProperty * N, AsmWriterContext & WriterCtx)

    Defined at line 2673 of file llvm/lib/IR/AsmWriter.cpp

  • LLT getMidVTForTruncRightShiftCombine (LLT ShiftTy, LLT TruncTy)

    Defined at line 2674 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • Value * insertVector (IRBuilderTy & IRB, Value * Old, Value * V, unsigned int BeginIndex, const Twine & Name)

    Defined at line 2674 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool MatchingStackOffset (SDValue Arg, unsigned int Offset, ArgFlagsTy Flags, MachineFrameInfo & MFI, const MachineRegisterInfo * MRI, const X86InstrInfo * TII, const CCValAssign & VA)

    Return true if the given stack call argument is already available in the

    same position (relatively) of the caller's incoming argument stack.

    Defined at line 2680 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • VPActiveLaneMaskPHIRecipe * addVPLaneMaskPhiAndUpdateExitBranch (VPlan & Plan, bool DataAndControlFlowWithoutRuntimeCheck)

    Add a VPActiveLaneMaskPHIRecipe and related recipes to

    and replace

    the loop terminator with a branch-on-cond recipe with the negated

    active-lane-mask as operand. Note that this turns the loop into an

    uncountable one. Only the existing terminator is replaced, all other existing

    recipes/users remain unchanged, except for poison-generating flags being

    dropped from the canonical IV increment. Return the created

    VPActiveLaneMaskPHIRecipe.

    The function uses the following definitions:

    %TripCount = DataWithControlFlowWithoutRuntimeCheck ?

    calculate-trip-count-minus-VF (original TC) : original TC

    %IncrementValue = DataWithControlFlowWithoutRuntimeCheck ?

    CanonicalIVPhi : CanonicalIVIncrement

    %StartV is the canonical induction start value.

    The function adds the following recipes:

    vector.ph:

    %TripCount = calculate-trip-count-minus-VF (original TC)

    [if DataWithControlFlowWithoutRuntimeCheck]

    %EntryInc = canonical-iv-increment-for-part %StartV

    %EntryALM = active-lane-mask %EntryInc, %TripCount

    vector.body:

    ...

    %P = active-lane-mask-phi [ %EntryALM, %vector.ph ], [ %ALM, %vector.body ]

    ...

    %InLoopInc = canonical-iv-increment-for-part %IncrementValue

    %ALM = active-lane-mask %InLoopInc, TripCount

    %Negated = Not %ALM

    branch-on-cond %Negated

    Defined at line 2685 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void writeDIImportedEntity (raw_ostream & Out, const DIImportedEntity * N, AsmWriterContext & WriterCtx)

    Defined at line 2687 of file llvm/lib/IR/AsmWriter.cpp

  • Instruction * canonicalizeGEPOfConstGEPI8 (GetElementPtrInst & GEP, GEPOperator * Src, InstCombinerImpl & IC)

    Canonicalization:

    gep T, (gep i8, base, C1), (Index + C2) into

    gep T, (gep i8, base, C1 + C2 * sizeof(T)), Index

    Defined at line 2690 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • template <class ELFT>
    Error checkGNUHashTable (const ELFFile<ELFT> & Obj, const typename ELFT::GnuHash * GnuHashTable, bool * IsHeaderValid)

    Defined at line 2694 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • uint64_t GetVBR (uint64_t Val, const unsigned char * MatcherTable, unsigned int & Idx)

    GetVBR - decode a vbr encoding whose top bit is set.

    Defined at line 2695 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • void removeMemtagFromGlobal (GlobalVariable & G)

    Defined at line 2698 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • bool removeRedundantDbgLocs (const BasicBlock * BB, FunctionVarLocsBuilder & FnVarLocs)

    Defined at line 2700 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • Error runChecks (Session & S, Triple TT, SubtargetFeatures Features)

    Defined at line 2700 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • void writeMDNodeBodyInternal (raw_ostream & Out, const MDNode * Node, AsmWriterContext & Ctx)

    Defined at line 2701 of file llvm/lib/IR/AsmWriter.cpp

  • Instruction * foldShuffleWithInsert (ShuffleVectorInst & Shuf, InstCombinerImpl & IC)

    Try to replace a shuffle with an insertelement or try to replace a shuffle

    operand with the operand of an insertelement.

    Defined at line 2703 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • Value * optimizeIntegerToVectorInsertions (BitCastInst & CI, InstCombinerImpl & IC)

    If the input is an 'or' instruction, we may be doing shifts and ors to

    assemble the elements of the vector manually.

    Try to rip the code out and replace it with insertelements. This is to

    optimize code like this:

    %tmp37 = bitcast float %inc to i32

    %tmp38 = zext i32 %tmp37 to i64

    %tmp31 = bitcast float %inc5 to i32

    %tmp32 = zext i32 %tmp31 to i64

    %tmp33 = shl i64 %tmp32, 32

    %ins35 = or i64 %tmp33, %tmp38

    %tmp43 = bitcast i64 %ins35 to

    <

    2 x float>

    Into two insertelements that do "buildvector{%inc, %inc5}".

    Defined at line 2705 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • void emitMatchTokenString (CodeGenTarget & Target, int & Infos, raw_ostream & OS)

    emitMatchTokenString - Emit the function to match a token string to the

    appropriate match class value.

    Defined at line 2709 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • SimpleValueType getSimpleVT (const unsigned char * MatcherTable, unsigned int & MatcherIndex)

    getSimpleVT - Decode a value in MatcherTable, if it's a VBR encoded value,

    use GetVBR to decode it.

    Defined at line 2713 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • void getVFSEntries (RedirectingFileSystem::Entry * SrcE, SmallVectorImpl<StringRef> & Path, SmallVectorImpl<YAMLVFSEntry> & Entries)

    Defined at line 2713 of file llvm/lib/Support/VirtualFileSystem.cpp

  • DenseSet findVarsWithStackSlot (Function & Fn)

    Defined at line 2714 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • bool hoistAddSub (Instruction & I, Loop & L, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU, AssumptionCache * AC, DominatorTree * DT)

    Reassociate and hoist add/sub expressions.

    Defined at line 2715 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • InstructionCost computeDomSubtreeCost (DomTreeNode & N, const SmallDenseMap<BasicBlock *, InstructionCost, 4> & BBCostMap, SmallDenseMap<DomTreeNode *, InstructionCost, 4> & DTCostMap)

    Recursively compute the cost of a dominator subtree based on the per-block

    cost map provided.

    The recursive computation is memozied into the provided DT-indexed cost map

    to allow querying it for most nodes in the domtree without it becoming

    quadratic.

    Defined at line 2721 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • Instruction * foldSelectFunnelShift (SelectInst & Sel, InstCombiner::BuilderTy & Builder)

    Try to reduce a funnel/rotate pattern that includes a compare and select

    into a funnel shift intrinsic. Example:

    rotl32(a, b) --> (b == 0 ? a : ((a >> (32 - b)) | (a

    <

    <

    b)))

    --> call llvm.fshl.i32(a, a, b)

    fshl32(a, b, c) --> (c == 0 ? a : ((b >> (32 - c)) | (a

    <

    <

    c)))

    --> call llvm.fshl.i32(a, b, c)

    fshr32(a, b, c) --> (c == 0 ? b : ((a >> (32 - c)) | (b

    <

    <

    c)))

    --> call llvm.fshr.i32(a, b, c)

    Defined at line 2721 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • void initializeDSELegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 2723 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp

  • bool canEnableCoalescing (SUnit * SU)

    Defined at line 2729 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • void emitMatchRegisterName (const CodeGenTarget & Target, const Record * AsmParser, raw_ostream & OS)

    emitMatchRegisterName - Emit the function to match a string to the target

    specific register enum.

    Defined at line 2729 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • unsigned int getExtendForIntVecReduction (SDNode * N)

    Defined at line 2730 of file llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp

  • Constant * computePointerICmp (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q)

    A significant optimization not implemented here is assuming that alloca

    addresses are not equal to incoming argument values. They don't *alias*,

    as we say, but that doesn't mean they aren't equal, so we take a

    conservative approach.

    This is inspired in part by C++11 5.10p1:

    "Two pointers of the same type compare equal if and only if they are both

    null, both point to the same function, or both represent the same

    address."

    This is pretty permissive.

    It's also partly due to C11 6.5.9p6:

    "Two pointers compare equal if and only if both are null pointers, both are

    pointers to the same object (including a pointer to an object and a

    subobject at its beginning) or function, both are pointers to one past the

    last element of the same array object, or one is a pointer to one past the

    end of one array object and the other is a pointer to the start of a

    different array object that happens to immediately follow the first array

    object in the address space.)

    C11's version is more restrictive, however there's no reason why an argument

    couldn't be a one-past-the-end value for a stack object in the caller and be

    equal to the beginning of a stack object in the callee.

    If the C and C++ standards are ever made sufficiently restrictive in this

    area, it may be possible to update LLVM's semantics accordingly and reinstate

    this optimization.

    Defined at line 2730 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void analyzeFunction (Function & Fn, const DataLayout & Layout, FunctionVarLocsBuilder * FnVarLocs)

    Defined at line 2731 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • Instruction * combineConstantOffsets (GetElementPtrInst & GEP, InstCombinerImpl & IC)

    Combine constant offsets separated by variable offsets.

    ptradd (ptradd (ptradd p, C1), x), C2 -> ptradd (ptradd p, x), C1+C2

    Defined at line 2735 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • template <class ELFT>
    Expected<ArrayRef<typename ELFT::Word>> getGnuHashTableChains (optional DynSymRegion, const typename ELFT::GnuHash * GnuHashTable)

    Defined at line 2736 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void ProfileDagInit (FoldingSetNodeID & ID, const Init * V, const StringInit * VN, ArrayRef Args, ArrayRef ArgNames)

    Defined at line 2737 of file llvm/lib/TableGen/Record.cpp

  • Instruction * canonicalizeBitCastExtElt (BitCastInst & BitCast, InstCombinerImpl & IC)

    Canonicalize scalar bitcasts of extracted elements into a bitcast of the

    vector followed by extract element. The backend tends to handle bitcasts of

    vectors better than bitcasts of scalars because vector registers are

    usually not type-specific like scalar integer or scalar floating-point.

    Defined at line 2739 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • bool isReassociableOp (Instruction * I, unsigned int IntOpcode, unsigned int FPOpcode)

    Defined at line 2745 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • Value * mergeTwoVectors (Value * V0, Value * V1, const DataLayout & DL, Type * NewAIEltTy, IRBuilder<> & Builder)

    This function takes two vector values and combines them into a single vector

    by concatenating their elements. The function handles:

    1. Element type mismatch: If either vector's element type differs from

    NewAIEltType, the function bitcasts the vector to use NewAIEltType while

    preserving the total bit width (adjusting the number of elements

    accordingly).

    2. Size mismatch: After transforming the vectors to have the desired element

    type, if the two vectors have different numbers of elements, the smaller

    vector is extended with poison values to match the size of the larger

    vector before concatenation.

    3. Concatenation: The vectors are merged using a shuffle operation that

    places all elements of V0 first, followed by all elements of V1.

    Parameters

    V0 The first vector to merge (must be a vector type)
    V1 The second vector to merge (must be a vector type)
    DL The data layout for size calculations
    NewAIEltTy The desired element type for the result vector
    Builder IRBuilder for creating new instructions

    Returns

    A new vector containing all elements from V0 followed by all

    elements from V1

    Defined at line 2748 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool optimizeGlobalsInModule (Module & M, const DataLayout & DL, function_ref<TargetLibraryInfo &(Function &)> GetTLI, function_ref<TargetTransformInfo &(Function &)> GetTTI, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, function_ref<DominatorTree &(Function &)> LookupDomTree, function_ref<void (Function &)> ChangedCFGCallback, function_ref<void (Function &)> DeleteFnCallback)

    Defined at line 2749 of file llvm/lib/Transforms/IPO/GlobalOpt.cpp

  • void overlapSampleProfile (const std::string & BaseFilename, const std::string & TestFilename, const OverlapFuncFilters & FuncFilter, uint64_t SimilarityCutoff, raw_fd_ostream & OS)

    Defined at line 2750 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void printPassName (StringRef PassName, raw_ostream & OS)

    Defined at line 2755 of file llvm/lib/Passes/PassBuilder.cpp

  • void ARM64EmitRuntimeFunction (MCStreamer & streamer, const WinEH::FrameInfo * info)

    Defined at line 2755 of file llvm/lib/MC/MCWin64EH.cpp

  • void emitMatchRegisterAltName (const CodeGenTarget & Target, const Record * AsmParser, raw_ostream & OS)

    Emit the function to match a string to the target

    specific register enum.

    Defined at line 2757 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • Expected getMainEntryPoint (Session & S)

    Defined at line 2758 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • void printPassName (StringRef PassName, StringRef Params, raw_ostream & OS)

    Defined at line 2758 of file llvm/lib/Passes/PassBuilder.cpp

  • bool hoistMulAddAssociation (Instruction & I, Loop & L, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU, AssumptionCache * AC, DominatorTree * DT)

    Try to reassociate expressions like ((A1 * B1) + (A2 * B2) + ...) * C where

    A1, A2, ... and C are loop invariants into expressions like

    ((A1 * C * B1) + (A2 * C * B2) + ...) and hoist the (A1 * C), (A2 * C), ...

    invariant expressions. This functions returns true only if any hoisting has

    actually occured.

    Defined at line 2760 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • Expected getOrcRuntimeEntryPoint (Session & S)

    Defined at line 2762 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • VPSingleDefRecipe * findHeaderMask (VPlan & Plan)

    Collect the header mask with the pattern:

    (ICMP_ULE, WideCanonicalIV, backedge-taken-count)

    TODO: Introduce explicit recipe for header-mask instead of searching

    for the header-mask pattern manually.

    Defined at line 2763 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • Instruction * foldBitCastBitwiseLogic (BitCastInst & BitCast, InstCombiner::BuilderTy & Builder)

    Change the type of a bitwise logic operation if we can eliminate a bitcast.

    Defined at line 2766 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • Expected getEntryPoint (Session & S)

    Defined at line 2769 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • BranchInst * turnSelectIntoBranch (SelectInst * SI, DominatorTree & DT, LoopInfo & LI, MemorySSAUpdater * MSSAU, AssumptionCache * AC)

    Turns a select instruction into implicit control flow branch,

    making the following replacement:

    head:

    --code before select--

    select %cond, %trueval, %falseval

    --code after select--

    into

    head:

    --code before select--

    br i1 %cond, label %then, label %tail

    then:

    br %tail

    tail:

    phi [ %trueval, %then ], [ %falseval, %head]

    unreachable

    It also makes all relevant DT and LI updates, so that all structures are in

    valid state after this transform.

    Defined at line 2772 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void ARMEmitRuntimeFunction (MCStreamer & streamer, const WinEH::FrameInfo * info)

    Defined at line 2773 of file llvm/lib/MC/MCWin64EH.cpp

  • bool mayBeSRetTailCallCompatible (const TargetLowering::CallLoweringInfo & CLI, Register CallerSRetReg)

    Defined at line 2774 of file llvm/lib/Target/X86/X86ISelLoweringCall.cpp

  • int overlap_main ()

    Defined at line 2775 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • void emitOperandDiagnosticTypes (AsmMatcherInfo & Info, raw_ostream & OS)

    emitOperandDiagnosticTypes - Emit the operand matching diagnostic types.

    Defined at line 2788 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • SDValue HandleMergeInputChains (const SmallVectorImpl<SDNode *> & ChainNodesMatched, SDValue InputGlue, SelectionDAG * CurDAG)

    HandleMergeInputChains - This implements the OPC_EmitMergeInputChains

    operation for when the pattern matched at least one node with a chains. The

    input vector contains a list of all of the chained nodes that we match. We

    must determine if this is a valid thing to cover (i.e. matching it won't

    induce cycles in the DAG) and if so, creating a TokenFactor node. that will

    be used as the input node chain for the generated nodes.

    Defined at line 2788 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • Value * upgradeX86IntrinsicCall (StringRef Name, CallBase * CI, Function * F, IRBuilder<> & Builder)

    Defined at line 2789 of file llvm/lib/IR/AutoUpgrade.cpp

  • Instruction * foldIdentityPaddedShuffles (ShuffleVectorInst & Shuf)

    Defined at line 2791 of file llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp

  • Instruction * foldSelectToCopysign (SelectInst & Sel, InstCombiner::BuilderTy & Builder)

    Defined at line 2792 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • void mergeCompatibleInvokesImpl (ArrayRef Invokes, DomTreeUpdater * DTU)

    Merge all invokes in the provided set, all of which are compatible

    as per the `CompatibleSets::shouldBelongToSameSet()`.

    Defined at line 2795 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Expected runWithRuntime (Session & S, ExecutorAddr EntryPointAddr)

    Defined at line 2799 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • void initializeModuloScheduleTestPassOnce (PassRegistry & Registry)

    Defined at line 2800 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • void traverseAllValueSites (const InstrProfRecord & Func, uint32_t VK, ValueSitesStats & Stats, raw_fd_ostream & OS, InstrProfSymtab * Symtab)

    Defined at line 2803 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • bool shouldDisplayLMA (const ObjectFile & Obj)

    Returns true if we need to show LMA column when dumping section headers. We

    show it only when the platform is ELF and either we have at least one section

    whose VMA and LMA are different and/or when --show-lma flag is used.

    Defined at line 2810 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void emitGetSubtargetFeatureName (AsmMatcherInfo & Info, raw_ostream & OS)

    emitGetSubtargetFeatureName - Emit the helper function to get the

    user-level name for a subtarget feature.

    Defined at line 2811 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • int SymbolizerGetOpInfo (void * DisInfo, uint64_t Pc, uint64_t Offset, uint64_t OpSize, uint64_t InstSize, int TagType, void * TagBuf)

    SymbolizerGetOpInfo() is the operand information call back function.

    This is called to get the symbolic information for operand(s) of an

    instruction when it is being done. This routine does this from

    the relocation information, symbol table, etc. That block of information

    is a pointer to the struct DisassembleInfo that was passed when the

    disassembler context was created and passed to back to here when

    called back by the disassembler for instruction operands that could have

    relocation information. The address of the instruction containing operand is

    at the Pc parameter. The immediate value the operand has is passed in

    op_info->Value and is at Offset past the start of the instruction and has a

    byte Size of 1, 2 or 4. The symbolc information is returned in TagBuf is the

    LLVMOpInfo1 struct defined in the header "llvm-c/Disassembler.h" as symbol

    names and addends of the symbolic expression to add for the operand. The

    value of TagType is currently 1 (for the LLVMOpInfo1 struct). If symbolic

    information is returned then this function returns 1 else it returns 0.

    Defined at line 2812 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void initializeAssignmentTrackingAnalysisPassOnce (PassRegistry & Registry)

    Defined at line 2815 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp

  • Expected runWithoutRuntime (Session & S, ExecutorAddr EntryPointAddr)

    Defined at line 2815 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • void parseSymbolString (StringRef S, int & Cycle, int & Stage)

    Defined at line 2818 of file llvm/lib/CodeGen/ModuloSchedule.cpp

  • size_t getMaxSectionNameWidth (const ObjectFile & Obj)

    Defined at line 2819 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • SDValue foldAddSubOfSignBit (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    Try to fold a 'not' shifted sign-bit with add/sub with constant operand into

    a shift and add with a different constant.

    Defined at line 2820 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • BranchInst * turnGuardIntoBranch (IntrinsicInst * GI, Loop & L, DominatorTree & DT, LoopInfo & LI, MemorySSAUpdater * MSSAU)

    Turns a llvm.experimental.guard intrinsic into implicit control flow branch,

    making the following replacement:

    --code before guard--

    call void (i1, ...)

    .experimental.guard(i1 %cond) [ "deopt"() ]

    --code after guard--

    into

    --code before guard--

    br i1 %cond, label %guarded, label %deopt

    guarded:

    --code after guard--

    deopt:

    call void (i1, ...)

    .experimental.guard(i1 false) [ "deopt"() ]

    unreachable

    It also makes all relevant DT and LI updates, so that all structures are in

    valid state after this transform.

    Defined at line 2823 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool isGEPKnownNonNull (const GEPOperator * GEP, const SimplifyQuery & Q, unsigned int Depth)

    Test whether a GEP's result is known to be non-null.

    Uses properties inherent in a GEP to try to determine whether it is known

    to be non-null.

    Currently this routine does not support vector GEPs.

    Defined at line 2825 of file llvm/lib/Analysis/ValueTracking.cpp

  • void EmitGICombiner (const RecordKeeper & RK, raw_ostream & OS)

    ===----------------------------------------------------------------------===//

    Defined at line 2828 of file llvm/utils/TableGen/GlobalISelCombinerEmitter.cpp

  • basic_string GetAliasRequiredFeatures (const Record * R, const AsmMatcherInfo & Info)

    Defined at line 2832 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • void showValueSitesStats (raw_fd_ostream & OS, uint32_t VK, ValueSitesStats & Stats)

    Defined at line 2837 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • Instruction * foldBitCastSelect (BitCastInst & BitCast, InstCombiner::BuilderTy & Builder)

    Change the type of a select if we can eliminate a bitcast.

    Defined at line 2838 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • void emitMnemonicAliasVariant (raw_ostream & OS, const AsmMatcherInfo & Info, ArrayRef<const Record *> Aliases, unsigned int Indent, StringRef AsmParserVariantName)

    Defined at line 2850 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • int showInstrProfile (ShowFormat SFormat, raw_fd_ostream & OS)

    Defined at line 2851 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • bool OnlyOnRHSOfCommutative (const TreePatternNode & N)

    OnlyOnRHSOfCommutative - Return true if this value is only allowed on the

    RHS of a commutative operation, not the on LHS.

    Defined at line 2855 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool canClobberReachingPhysRegUse (const SUnit * DepSU, const SUnit * SU, ScheduleDAGRRList * scheduleDAG, const TargetInstrInfo * TII, const TargetRegisterInfo * TRI)

    canClobberReachingPhysRegUse - True if SU would clobber one of it's

    successor's explicit physregs whose definition can reach DepSU.

    i.e. DepSU should not be scheduled above SU.

    Defined at line 2856 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • template <typename Op0_t, typename Op1_t>
    RemoveMask_match<Op0_t, Op1_t> m_RemoveMask (const Op0_t & In, Op1_t & Out)

    Match a specific mask

    or a combination of it (logical-and In, Out).

    Returns the remaining part

    if so, or nullptr otherwise.

    Defined at line 2860 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool areBitwiseNotOfEachother (SDValue Op0, SDValue Op1)

    Defined at line 2860 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool hoistBOAssociation (Instruction & I, Loop & L, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU, AssumptionCache * AC, DominatorTree * DT)

    Reassociate associative binary expressions of the form

    1. "(LV op C1) op C2" ==> "LV op (C1 op C2)"

    2. "(C1 op LV) op C2" ==> "LV op (C1 op C2)"

    3. "C2 op (C1 op LV)" ==> "LV op (C1 op C2)"

    4. "C2 op (LV op C1)" ==> "LV op (C1 op C2)"

    where op is an associative BinOp, LV is a loop variant, and C1 and C2 are

    loop invariants that we want to hoist, noting that associativity implies

    commutativity.

    Defined at line 2863 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool mayFoldIntoVector (SDValue Op, const X86Subtarget & Subtarget, bool AssumeSingleUse)

    Return true if its cheap to bitcast this to a vector type.

    Defined at line 2864 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * simplifyICmpOfBools (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Fold an icmp when its operands have i1 scalar type.

    Defined at line 2867 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • template <typename Ty>
    match_LoopInvariant<Ty> m_LoopInvariant (const Ty & M, const Loop * L)

    Matches if the value is loop-invariant.

    Defined at line 2872 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • VPRecipeBase * optimizeMaskToEVL (VPValue * HeaderMask, VPRecipeBase & CurRecipe, VPTypeAnalysis & TypeInfo, VPValue & EVL)

    Try to optimize a

    masked by

    to a corresponding

    EVL-based recipe without the header mask. Returns nullptr if no EVL-based

    recipe could be created.

    Header Mask.

    Recipe to be transform.

    VPlan-based type analysis.

    The explicit vector length parameter of vector-predication

    intrinsics.

    Defined at line 2873 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool isLogicOp (unsigned int Opcode)

    Defined at line 2874 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • AttributeMask getParamAndReturnAttributesToRemove ()

    List of all parameter and return attributes which must be stripped when

    lowering from the abstract machine model. Note that we list attributes

    here which aren't valid as return attributes, that is okay.

    Defined at line 2878 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool isTargetShuffle (unsigned int Opcode)

    Defined at line 2879 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool hasStoreUsersOnly (CastInst & CI)

    Check if all users of CI are StoreInsts.

    Defined at line 2881 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • Register findUniqueOperandDefinedInLoop (const MachineInstr & MI)

    Defined at line 2882 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • bool isIntrinsicOrLFToBeTailCalled (const TargetLibraryInfo * TLInfo, const CallInst * CI)

    Defined at line 2883 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • int CalculateUnswitchCostMultiplier (const Instruction & TI, const Loop & L, const LoopInfo & LI, const DominatorTree & DT, ArrayRef UnswitchCandidates)

    Cost multiplier is a way to limit potentially exponential behavior

    of loop-unswitch. Cost is multiplied in proportion of 2^number of unswitch

    candidates available. Also consider the number of "sibling" loops with

    the idea of accounting for previous unswitches that already happened on this

    cluster of loops. There was an attempt to keep this formula simple,

    just enough to limit the worst case behavior. Even if it is not that simple

    now it is still not an attempt to provide a detailed heuristic size

    prediction.

    TODO: Make a proper accounting of "explosion" effect for all kinds of

    unswitch candidates, making adequate predictions instead of wild guesses.

    That requires knowing not just the number of "remaining" candidates but

    also costs of unswitching for each of these candidates.

    Defined at line 2883 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool isKnownNonNullFromDominatingCondition (const Value * V, const Instruction * CtxI, const DominatorTree * DT)

    Defined at line 2889 of file llvm/lib/Analysis/ValueTracking.cpp

  • void stripNonValidAttributesFromPrototype (Function & F)

    Defined at line 2890 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void TestEscaped (StringRef Input, StringRef Expected)

    Defined at line 2892 of file llvm/unittests/Support/YAMLIOTest.cpp

  • bool canClobberPhysRegDefs (const SUnit * SuccSU, const SUnit * SU, const TargetInstrInfo * TII, const TargetRegisterInfo * TRI)

    canClobberPhysRegDefs - True if SU would clobber one of SuccSU's

    physical register defs.

    Defined at line 2892 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

  • bool detectShiftUntilBitTestIdiom (Loop * CurLoop, Value *& BaseX, Value *& BitMask, Value *& BitPos, Value *& CurrX, Instruction *& NextX)

    Return true if the idiom is detected in the loop.

    The core idiom we are trying to detect is:

    Code

                                                    
                                                           entry:
                                                             <...>
                                                             %bitmask = shl i32 1, %bitpos
                                                             br label %loop
                                                        
                                                           loop:
                                                             %x.curr = phi i32 [ %x, %entry ], [ %x.next, %loop ]
                                                             %x.curr.bitmasked = and i32 %x.curr, %bitmask
                                                             %x.curr.isbitunset = icmp eq i32 %x.curr.bitmasked, 0
                                                             %x.next = shl i32 %x.curr, 1
                                                             <...>
                                                             br i1 %x.curr.isbitunset, label %loop, label %end
                                                        
                                                           end:
                                                             %x.curr.res = phi i32 [ %x.curr, %loop ] <...>
                                                             %x.next.res = phi i32 [ %x.next, %loop ] <...>
                                                             <...>
                                                    
                                                

    Defined at line 2898 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • bool findLoopIncrementValue (const MachineOperand & Op, int & Value)

    When Op is a value that is incremented recursively in a loop and there is a

    unique instruction that increments it, returns true and sets Value.

    Defined at line 2900 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • bool isAllZeros (StringRef Arr)

    Return true if the array is empty or all zeros.

    Defined at line 2908 of file llvm/lib/IR/Constants.cpp

  • bool CheckSame (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDValue N, const SmallVectorImpl<std::pair<SDValue, SDNode *>> & RecordedNodes)

    CheckSame - Implements OP_CheckSame.

    Defined at line 2917 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • void stripInvalidMetadataFromInstruction (Instruction & I)

    Certain metadata on instructions are invalid after running RS4GC.

    Optimizations that run after RS4GC can incorrectly use this metadata to

    optimize functions. We drop such metadata on the instruction.

    Defined at line 2918 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • Instruction * foldSelectToPhiImpl (SelectInst & Sel, BasicBlock * BB, const DominatorTree & DT, InstCombiner::BuilderTy & Builder)

    Defined at line 2920 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool isTargetShuffleVariableMask (unsigned int Opcode)

    Defined at line 2922 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void combineMetadata (Instruction * K, const Instruction * J, bool DoesKMove, bool AAOnly)

    If AAOnly is set, only intersect alias analysis metadata and preserve other

    known metadata. Unknown metadata is always dropped.

    Defined at line 2922 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool CheckChildSame (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDValue N, const SmallVectorImpl<std::pair<SDValue, SDNode *>> & RecordedNodes, unsigned int ChildNo)

    CheckChildSame - Implements OP_CheckChildXSame.

    Defined at line 2927 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • Value * getLoopVariantGEPOperand (Value * Ptr, ScalarEvolution * SE, Loop * Lp)

    If

    is a GEP, which has a loop-variant operand, return that operand.

    Otherwise, return

    Defined at line 2929 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • bool emitMnemonicAliases (raw_ostream & OS, const AsmMatcherInfo & Info, CodeGenTarget & Target)

    emitMnemonicAliases - If the target has any MnemonicAlias

    <

    > definitions,

    emit a function for them and return true, otherwise return false.

    Defined at line 2929 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • bool CheckPatternPredicate (unsigned int Opcode, const unsigned char * MatcherTable, unsigned int & MatcherIndex, const SelectionDAGISel & SDISel)

    CheckPatternPredicate - Implements OP_CheckPatternPredicate.

    Defined at line 2938 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • PubIndexEntryDescriptor computeIndexValue (DwarfUnit * CU, const DIE * Die)

    computeIndexValue - Compute the gdb index value for the DIE and CU.

    Defined at line 2943 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • Expected jumpToValueSymbolTable (uint64_t Offset, BitstreamCursor & Stream)

    Helper to note and return the current location, and jump to the given

    offset.

    Defined at line 2945 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void stripNonValidDataFromBody (Function & F)

    Defined at line 2946 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool mergeCompatibleInvokes (BasicBlock * BB, DomTreeUpdater * DTU)

    If this block is a `landingpad` exception handling block, categorize all

    the predecessor `invoke`s into sets, with all `invoke`s in each set

    being "mergeable" together, and then merge invokes in each set together.

    This is a weird mix of hoisting and sinking. Visually, it goes from:

    [...] [...]

    | |

    [invoke0] [invoke1]

    /

    \

    /

    \

    /// [cont0] [landingpad] [cont1]

    to:

    [...] [...]

    \

    /

    [invoke]

    /

    \

    /// [cont] [landingpad]

    But of course we can only do that if the invokes share the `landingpad`,

    edges invoke0->cont0 and invoke1->cont1 are "compatible",

    and the invoked functions are "compatible".

    Defined at line 2948 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • const SCEV * getStrideFromPointer (Value * Ptr, ScalarEvolution * SE, Loop * Lp)

    Get the stride of a pointer access in a loop. Looks for symbolic

    strides "a[i*stride]". Returns the symbolic stride, or null otherwise.

    Defined at line 2950 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp

  • bool CheckNodePredicate (unsigned int Opcode, const unsigned char * MatcherTable, unsigned int & MatcherIndex, const SelectionDAGISel & SDISel, SDValue Op)

    CheckNodePredicate - Implements OP_CheckNodePredicate.

    Defined at line 2953 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • Instruction * getSuccPad (Instruction * Terminator)

    Defined at line 2953 of file llvm/lib/IR/Verifier.cpp

  • bool CheckOpcode (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDNode * N)

    Defined at line 2963 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool isTrigLibCall (CallInst * CI)

    Defined at line 2964 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • Instruction * foldFNegIntoConstant (Instruction & I, const DataLayout & DL)

    This eliminates floating-point negation in either 'fneg(X)' or

    'fsub(-0.0, X)' form by combining into a constant operand.

    Defined at line 2964 of file llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp

  • void transformRecipestoEVLRecipes (VPlan & Plan, VPValue & EVL)

    Replace recipes with their EVL variants.

    Defined at line 2965 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • Value * simplifyICmpWithZero (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Try hard to fold icmp with zero RHS because this is a common case.

    Defined at line 2970 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool CheckType (SimpleValueType VT, SDValue N, const TargetLowering * TLI, const DataLayout & DL)

    Defined at line 2971 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool insertSinCosCall (IRBuilderBase & B, Function * OrigCallee, Value * Arg, bool UseFloat, Value *& Sin, Value *& Cos, Value *& SinCos, const TargetLibraryInfo * TLI)

    Defined at line 2971 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • User::op_iterator findIVOperand (User::op_iterator OI, User::op_iterator OE, Loop * L, ScalarEvolution & SE)

    Helper for CollectChains that finds an IV operand (computed by an AddRec in

    this loop) within [OI,OE) or returns OE. If IVUsers mapped Instructions to

    IVStrideUses, we could partially skip this.

    Defined at line 2973 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void emitCustomOperandParsing (raw_ostream & OS, CodeGenTarget & Target, const AsmMatcherInfo & Info, StringRef ClassName, const StringToOffsetTable & StringTable, unsigned int MaxMnemonicIndex, unsigned int MaxFeaturesIndex, bool HasMnemonicFirst, const Record & AsmParser)

    Defined at line 2974 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • bool collectUnswitchCandidates (SmallVectorImpl<NonTrivialUnswitchCandidate> & UnswitchCandidates, IVConditionInfo & PartialIVInfo, Instruction *& PartialIVCondBranch, const Loop & L, const LoopInfo & LI, AAResults & AA, const MemorySSAUpdater * MSSAU)

    Defined at line 2976 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool isAMustTailRetVal (Value * RetVal)

    Defined at line 2979 of file llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp

  • Instruction * foldSelectToPhi (SelectInst & Sel, const DominatorTree & DT, InstCombiner::BuilderTy & Builder)

    Defined at line 2981 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool CheckChildType (SimpleValueType VT, SDValue N, const TargetLowering * TLI, const DataLayout & DL, unsigned int ChildNo)

    Defined at line 2982 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool rangeMetadataExcludesValue (const MDNode * Ranges, const APInt & Value)

    Does the 'Range' metadata (which must be a valid MD_range operand list)

    ensure that the value it's attached to is never Value? 'RangeType' is

    is the type of the value described by the range.

    Defined at line 2988 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isX86CCSigned (CondCode X86CC)

    Return true if the condition is an signed comparison operation.

    Defined at line 2989 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool CheckCondCode (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDValue N)

    Defined at line 2990 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • Value * getWideOperand (Value * Oper)

    IVChain logic must consistently peek base TruncInst operands, so wrap it in

    a convenient helper.

    Defined at line 2993 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool CheckChild2CondCode (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDValue N)

    Defined at line 2997 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • Instruction * foldSelectWithSRem (SelectInst & SI, InstCombinerImpl & IC, IRBuilderBase & Builder)

    Tries to reduce a pattern that arises when calculating the remainder of the

    Euclidean division. When the divisor is a power of two and is guaranteed not

    to be negative, a signed remainder can be folded with a bitwise and.

    (x % n)

    <

    0 ? (x % n) + n : (x % n)

    -> x

    &

    (n - 1)

    Defined at line 3002 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool CheckValueType (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDValue N, const TargetLowering * TLI, const DataLayout & DL)

    Defined at line 3005 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool isNonZeroRecurrence (const PHINode * PN)

    Try to detect a recurrence that monotonically increases/decreases from a

    non-zero starting value. These are common as induction variables.

    Defined at line 3005 of file llvm/lib/Analysis/ValueTracking.cpp

  • CondCode TranslateIntegerX86CC (CondCode SetCCOpcode)

    Defined at line 3008 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const SCEV * getExprBase (const SCEV * S)

    Return an approximation of this SCEV expression's "base", or NULL for any

    constant. Returning the expression itself is conservative. Returning a

    deeper subexpression is more precise and valid as long as it isn't less

    complex than another subexpression. For expressions involving multiple

    unscaled values, we need to return the pointer-type SCEVUnknown. This avoids

    forming chains across objects, such as: PrevOper==a[i], IVOper==b[i],

    IVInc==b-a.

    Since SCEVUnknown is the rightmost type, and pointers are the rightmost

    SCEVUnknown, we simply return the rightmost SCEV operand.

    Defined at line 3009 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • uint64_t decodeSignRotatedValue (uint64_t V)

    Bit 0 stores the sign of the immediate. The upper bits contain the magnitude

    shifted left by 1.

    Defined at line 3018 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool CheckInteger (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDValue N)

    Defined at line 3027 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • Value * optimizeSymmetricCall (CallInst * CI, bool IsEven, IRBuilderBase & B)

    Defined at line 3027 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • CondCode TranslateX86CC (CondCode SetCCOpcode, const SDLoc & DL, bool isFP, SDValue & LHS, SDValue & RHS, SelectionDAG & DAG)

    Do a one-to-one translation of a ISD::CondCode to the X86-specific

    condition code, returning the condition code and the LHS/RHS of the

    comparison to make.

    Defined at line 3029 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * simplifyICmpWithConstant (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Defined at line 3030 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void scalarizeInstruction (const Instruction * Instr, VPReplicateRecipe * RepRecipe, const VPLane & Lane, VPTransformState & State)

    A helper function to scalarize a single Instruction in the innermost loop.

    Generates a sequence of scalar instances for lane

    Uses the VPValue

    operands from

    instead of

    operands.

    Defined at line 3031 of file llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

  • Value * isSafeToSpeculateStore (Instruction * I, BasicBlock * BrBB, BasicBlock * StoreBB, BasicBlock * EndBB)

    Determine if we can hoist sink a sole store instruction out of a

    conditional block.

    We are looking for code like the following:

    BrBB:

    store i32 %add, i32* %arrayidx2

    ... // No other stores or function calls (we could be calling a memory

    ... // function).

    %cmp = icmp ult %x, %y

    br i1 %cmp, label %EndBB, label %ThenBB

    ThenBB:

    store i32 %add5, i32* %arrayidx2

    br label EndBB

    EndBB:

    ...

    We are going to transform this into:

    BrBB:

    store i32 %add, i32* %arrayidx2

    ... //

    %cmp = icmp ult %x, %y

    %add.add5 = select i1 %cmp, i32 %add, %add5

    store i32 %add.add5, i32* %arrayidx2

    ...

    Returns

    The pointer to the value of the previous store if the store can be

    hoisted into the predecessor block. 0 otherwise.

    Defined at line 3031 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool matchOpWithOpEqZero (Value * Op0, Value * Op1)

    Defined at line 3033 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * createLogicFromTable (const std::bitset<4> & Table, Value * Op0, Value * Op1, IRBuilderBase & Builder, bool HasOneUse)

    Defined at line 3038 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool CheckChildInteger (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDValue N, unsigned int ChildNo)

    Defined at line 3040 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • bool isNonZeroAdd (const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int BitWidth, Value * X, Value * Y, bool NSW, bool NUW, unsigned int Depth)

    Defined at line 3040 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool shouldCanonicalizeGEPToPtrAdd (GetElementPtrInst & GEP)

    Return true if we should canonicalize the gep to an i8 ptradd.

    Defined at line 3042 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • bool CheckAndImm (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDValue N, const SelectionDAGISel & SDISel)

    Defined at line 3048 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • uint64_t umul_ov (uint64_t i, uint64_t j, bool & Overflow)

    Defined at line 3049 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • Value * simplifyNestedSelectsUsingImpliedCond (SelectInst & SI, Value * CondVal, bool CondIsTrue, const DataLayout & DL)

    Given that

    is known to be

    try to simplify

    Defined at line 3052 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • uint64_t Choose (uint64_t n, uint64_t k, bool & Overflow)

    Compute the result of "n choose k", the binomial coefficient. If an

    intermediate computation overflows, Overflow will be set and the return will

    be garbage. Overflow is not cleared on absence of overflow.

    Defined at line 3058 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool CheckOrImm (const unsigned char * MatcherTable, unsigned int & MatcherIndex, SDValue N, const SelectionDAGISel & SDISel)

    Defined at line 3061 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • Value * foldCopySignIdioms (BitCastInst & CI, InstCombiner::BuilderTy & Builder, const SimplifyQuery & SQ)

    Fold (bitcast (or (and (bitcast X to int), signmask), nneg Y) to fp) to

    copysign((bitcast Y to fp), X)

    Defined at line 3067 of file llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

  • Instruction * foldGEPOfPhi (GetElementPtrInst & GEP, PHINode * PN, IRBuilderBase & Builder)

    Defined at line 3071 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void canonicalizeForInvariantConditionInjection (CmpPredicate & Pred, Value *& LHS, Value *& RHS, BasicBlock *& IfTrue, BasicBlock *& IfFalse, const Loop & L)

    Tries to canonicalize condition described by:

    br (LHS pred RHS), label IfTrue, label IfFalse

    into its equivalent where `Pred` is something that we support for injected

    invariants (so far it is limited to ult), LHS in canonicalized form is

    non-invariant and RHS is an invariant.

    Defined at line 3072 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • SDValue getLoadStackGuard (SelectionDAG & DAG, const SDLoc & DL, SDValue & Chain)

    Create a LOAD_STACK_GUARD node, and let it carry the target specific global

    variable if there exists one.

    Defined at line 3076 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • bool isProfitableChain (IVChain & Chain, SmallPtrSetImpl<Instruction *> & Users, ScalarEvolution & SE, const TargetTransformInfo & TTI)

    Return true if the number of registers needed for the chain is estimated to

    be less than the number required for the individual IV users. First prohibit

    any IV users that keep the IV live across increments (the Users set should

    be empty). Next count the number and type of increments in the chain.

    Chaining IVs can lead to considerable code bloat if ISEL doesn't

    effectively use postinc addressing modes. Only consider it profitable it the

    increments can be computed in fewer registers when chained.

    TODO: Consider IVInc free if it's already used in another chains.

    Defined at line 3076 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • unsigned int IsPredicateKnownToFail (const unsigned char * Table, unsigned int Index, SDValue N, bool & Result, const SelectionDAGISel & SDISel, SmallVectorImpl<std::pair<SDValue, SDNode *>> & RecordedNodes)

    IsPredicateKnownToFail - If we know how and can do so without pushing a

    scope, evaluate the current node. If the current predicate is known to

    fail, set Result=true and return anything. If the current predicate is

    known to pass, set Result=false and return the MatcherIndex to continue

    with. If the current predicate is unknown, set Result=false and return the

    MatcherIndex to continue with.

    Defined at line 3080 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

  • Instruction * foldSelectWithFCmpToFabs (SelectInst & SI, InstCombinerImpl & IC)

    Canonicalize select with fcmp to fabs(). -0.0 makes this tricky. We need

    fast-math-flags (nsz) or fsub with +0.0 (not fneg) for this to work.

    Defined at line 3082 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool functionsHaveCompatibleAttributes (Function * Caller, Function * Callee, TargetTransformInfo & TTI, function_ref<const TargetLibraryInfo &(Function &)> & GetTLI)

    Test that there are no attribute conflicts between Caller and Callee

    that prevent inlining.

    Defined at line 3083 of file llvm/lib/Analysis/InlineCost.cpp

  • bool containsConstantInAddMulChain (const SCEV * StartExpr)

    Determine if any of the operands in this SCEV are a constant or if

    any of the add or multiply expressions in this SCEV contain a constant.

    Defined at line 3083 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void getUnsignedMonotonicValues (SmallPtrSetImpl<Value *> & Res, Value * V, MonotonicType Type, const SimplifyQuery & Q, unsigned int Depth)

    Get values V_i such that V uge V_i (GreaterEq) or V ule V_i (LowerEq).

    Defined at line 3084 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isNonZeroSub (const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int BitWidth, Value * X, Value * Y, unsigned int Depth)

    Defined at line 3086 of file llvm/lib/Analysis/ValueTracking.cpp

  • void showSectionInfo (sampleprof::SampleProfileReader * Reader, raw_fd_ostream & OS)

    Defined at line 3092 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • bool validateAndCostRequiredSelects (BasicBlock * BB, BasicBlock * ThenBB, BasicBlock * EndBB, unsigned int & SpeculatedInstructions, InstructionCost & Cost, const TargetTransformInfo & TTI)

    Estimate the cost of the insertion(s) and check that the PHI nodes can be

    converted to selects.

    Defined at line 3094 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool shouldTryInjectInvariantCondition (Predicate Pred, const Value * LHS, const Value * RHS, const BasicBlock * IfTrue, const BasicBlock * IfFalse, const Loop & L)

    Returns true, if predicate described by (

    )

    succeeding into blocks (

    can be optimized by

    injecting a loop-invariant condition.

    Defined at line 3100 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool isNonZeroMul (const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int BitWidth, Value * X, Value * Y, bool NSW, bool NUW, unsigned int Depth)

    Defined at line 3102 of file llvm/lib/Analysis/ValueTracking.cpp

  • Instruction * matchFunnelShift (Instruction & Or, InstCombinerImpl & IC)

    Match UB-safe variants of the funnel shift intrinsic.

    Defined at line 3111 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool hasFPCMov (unsigned int X86CC)

    Is there a floating point cmov for the specific X86 condition code?

    Current x86 isa includes the following FP cmov instructions:

    fcmovb, fcomvbe, fcomve, fcmovu, fcmovae, fcmova, fcmovne, fcmovnu.

    Defined at line 3112 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isConvertibleLEA (MachineInstr * MI)

    Defined at line 3118 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool shouldTryInjectBasingOnMetadata (const BranchInst * BI, const BasicBlock * TakenSucc)

    Returns true, if metadata on

    allows us to optimize branching into

    via injection of invariant conditions. The branch should be not

    enough and not previously unswitched, the information about this comes from

    the metadata.

    Defined at line 3122 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • APInt getKnownUndefForVectorBinop (SDValue BO, SelectionDAG & DAG, const APInt & UndefOp0, const APInt & UndefOp1)

    Given a vector binary operation and known undefined elements for each input

    operand, compute whether each element of the output is undefined.

    Defined at line 3123 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • void dumpHotFunctionList (const std::vector<std::string> & ColumnTitle, const std::vector<int> & ColumnOffset, const std::vector<HotFuncInfo> & PrintValues, uint64_t HotFuncCount, uint64_t TotalFuncCount, uint64_t HotProfCount, uint64_t TotalProfCount, const std::string & HotFuncMetric, uint32_t TopNFunctions, raw_fd_ostream & OS)

    Print out detailed information about hot functions in PrintValues vector.

    Users specify titles and offset of every columns through ColumnTitle and

    ColumnOffset. The size of ColumnTitle and ColumnOffset need to be the same

    and at least 4. Besides, users can optionally give a HotFuncMetric string to

    print out or let it be an empty string.

    Defined at line 3123 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • Value * matchOrConcat (Instruction & Or, InstCombiner::BuilderTy & Builder)

    Attempt to combine or(zext(x),shl(zext(y),bw/2) concat packing patterns.

    Defined at line 3123 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool useVPTERNLOG (const X86Subtarget & Subtarget, MVT VT)

    Defined at line 3128 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const SCEV * getAddressAccessSCEV (const VPValue * Ptr, PredicatedScalarEvolution & PSE, const Loop * L)

    Returns a SCEV expression for

    if it is a pointer computation for

    which the legacy cost model computes a SCEV expression when computing the

    address cost. Computing SCEVs for VPValues is incomplete and returns

    SCEVCouldNotCompute in cases the legacy cost model can compute SCEVs. In

    those cases we fall back to the legacy cost model. Otherwise return nullptr.

    Defined at line 3129 of file llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

  • bool isNonZeroShift (const Operator * I, const APInt & DemandedElts, const SimplifyQuery & Q, const KnownBits & KnownVal, unsigned int Depth)

    Defined at line 3130 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * simplifyICmpUsingMonotonicValues (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Defined at line 3135 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isUsableDebugLoc (DebugLoc DL)

    Usable locations are valid with non-zero line numbers. A line number of zero

    corresponds to optimized code that doesn't have a distinct source location.

    In this case, we try to use the previous or next source location depending on

    the context.

    Defined at line 3140 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • void emitAsmTiedOperandConstraints (CodeGenTarget & Target, AsmMatcherInfo & Info, raw_ostream & OS, bool HasOptionalOperands)

    Defined at line 3146 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • bool isProfitableToSpeculate (const BranchInst * BI, optional Invert, const TargetTransformInfo & TTI)

    Defined at line 3148 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool isUsedByLoadStoreAddress (const VPUser * V)

    Returns true if

    is used as part of the address of another load or

    store.

    Defined at line 3149 of file llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

  • void printUnwindInfo (const ObjectFile * O)

    Defined at line 3152 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • Value * simplifyICmpWithBinOpOnLHS (CmpPredicate Pred, BinaryOperator * LBO, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Defined at line 3154 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool parseIRValue (const MIToken & Token, PerFunctionMIParsingState & PFS, const Value *& V, ErrorCallbackType ErrCB)

    Defined at line 3159 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • NonTrivialUnswitchCandidate injectPendingInvariantConditions (NonTrivialUnswitchCandidate Candidate, Loop & L, DominatorTree & DT, LoopInfo & LI, AssumptionCache & AC, MemorySSAUpdater * MSSAU)

    Materialize pending invariant condition of the given candidate into IR. The

    injected loop-invariant condition implies the original loop-variant branch

    condition, so the materialization turns

    loop_block:

    ...

    br i1 %variant_cond, label InLoopSucc, label OutOfLoopSucc

    into

    preheader:

    %invariant_cond = LHS pred RHS

    ...

    loop_block:

    br i1 %invariant_cond, label InLoopSucc, label OriginalCheck

    OriginalCheck:

    br i1 %variant_cond, label InLoopSucc, label OutOfLoopSucc

    ...

    Defined at line 3161 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool parseHexOcta (AsmParser & Asm, uint64_t & hi, uint64_t & lo)

    Defined at line 3163 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • void printRawClangAST (const ObjectFile * Obj)

    Dump the raw contents of the __clangast section so the output can be piped

    into llvm-bcanalyzer.

    Defined at line 3168 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • int showHotFunctionList (const sampleprof::SampleProfileMap & Profiles, ProfileSummary & PS, uint32_t TopN, raw_fd_ostream & OS)

    Defined at line 3173 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • bool isKnownNonZeroFromOperator (const Operator * I, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 3181 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool areInverseVectorBitmasks (Constant * C1, Constant * C2)

    If all elements of two constant vectors are 0/-1 and inverses, return true.

    Defined at line 3186 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool SimplifyTree (TreePatternNodePtr & N)

    SimplifyTree - See if we can simplify this tree to eliminate something that

    will never match in favor of something obvious that will. This is here

    strictly as a convenience to target authors because it allows them to write

    more type generic things and have useless type casts fold away.

    This returns true if any change is made.

    Defined at line 3186 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void computeLiveInValues (ilist_iterator_w_bits Begin, ilist_iterator_w_bits End, int & LiveTmp, GCStrategy * GC)

    Compute the live-in set for the location rbegin starting from

    the live-out set of the basic block

    Defined at line 3190 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • StringRef getSymbolName (SymbolKind SymKind)

    Defined at line 3191 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • basic_string gtest_IsBytewiseValueParamTestsIsBytewiseValueTest_EvalGenerateName_ (const ::testing::TestParamInfo<IsBytewiseValueTest::ParamType> & info)

    Defined at line 3192 of file llvm/unittests/Analysis/ValueTrackingTest.cpp

  • ParamGenerator gtest_IsBytewiseValueParamTestsIsBytewiseValueTest_EvalGenerator_ ()

    Defined at line 3192 of file llvm/unittests/Analysis/ValueTrackingTest.cpp

  • void emitMnemonicSpellChecker (raw_ostream & OS, CodeGenTarget & Target, unsigned int VariantCount)

    Defined at line 3195 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • template <typename ShouldReplaceFn>
    unsigned int replaceDominatedUsesWith (Value * From, Value * To, const ShouldReplaceFn & ShouldReplace)

    Defined at line 3200 of file llvm/lib/Transforms/Utils/Local.cpp

  • void printFaultMaps (const ObjectFile * Obj)

    Defined at line 3204 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool HasNestArgument (const MachineFunction * MF)

    Defined at line 3216 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • void computeLiveOutSeed (BasicBlock * BB, int & LiveTmp, GCStrategy * GC)

    Defined at line 3223 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • unsigned int computeBytesPoppedByCalleeForSRet (const X86Subtarget * Subtarget, CallingConv::ID CC, const CallBase * CB)

    Defined at line 3223 of file llvm/lib/Target/X86/X86FastISel.cpp

  • Value * foldRoundUpIntegerWithPow2Alignment (SelectInst & SI, InstCombiner::BuilderTy & Builder)

    Match the following IR pattern:

    %x.lowbits = and i8 %x, %lowbitmask

    %x.lowbits.are.zero = icmp eq i8 %x.lowbits, 0

    %x.biased = add i8 %x, %bias

    %x.biased.highbits = and i8 %x.biased, %highbitmask

    %x.roundedup = select i1 %x.lowbits.are.zero, i8 %x, i8 %x.biased.highbits

    Define:

    %alignment = add i8 %lowbitmask, 1

    Iff 1. an %alignment is a power-of-two (aka, %lowbitmask is a low bit mask)

    and 2. %bias is equal to either %lowbitmask or %alignment,

    and 3. %highbitmask is equal to ~%lowbitmask (aka, to -%alignment)

    then this pattern can be transformed into:

    %x.offset = add i8 %x, %lowbitmask

    %x.roundedup = and i8 %x.offset, %highbitmask

    Defined at line 3225 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • const char * GuessCstringPointer (uint64_t ReferenceValue, struct DisassembleInfo * info)

    GuessCstringPointer is passed the address of what might be a pointer to a

    literal string in a cstring section. If that address is in a cstring section

    it returns a pointer to that string. Else it returns nullptr.

    Defined at line 3227 of file llvm/tools/llvm-objdump/MachODump.cpp

  • unsigned int GetScratchRegister (bool Is64Bit, bool IsLP64, const MachineFunction & MF, bool Primary)

    GetScratchRegister - Get a temp register for performing work in the

    segmented stack and the Erlang/HiPE stack prologue. Depending on platform

    and the properties of the function either one or two registers will be

    needed. Set primary to true for the first register, false for the second.

    Defined at line 3230 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • int showSampleProfile (ShowFormat SFormat, raw_fd_ostream & OS)

    Defined at line 3236 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • int computeKillSet (BasicBlock * BB, GCStrategy * GC)

    Defined at line 3240 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void emitMnemonicChecker (raw_ostream & OS, CodeGenTarget & Target, unsigned int VariantCount, bool HasMnemonicFirst, bool HasMnemonicAliases)

    Defined at line 3249 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • void checkBasicSSA (DominatorTree & DT, int & Live, Instruction * TI, bool TermOkay)

    Check that the items in 'Live' dominate 'TI'. This is used as a basic

    validation check for the liveness computation.

    Defined at line 3251 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void printFileHeaders (const ObjectFile * O)

    Defined at line 3252 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • const char * getWholeProgDevirtResKindName (Kind K)

    Defined at line 3257 of file llvm/lib/IR/AsmWriter.cpp

  • bool insertCandidatesWithPendingInjections (SmallVectorImpl<NonTrivialUnswitchCandidate> & UnswitchCandidates, Loop & L, Predicate Pred, ArrayRef Compares, const DominatorTree & DT)

    Given chain of loop branch conditions looking like:

    br (Variant

    <

    Invariant1)

    br (Variant

    <

    Invariant2)

    br (Variant

    <

    Invariant3)

    ...

    collect set of invariant conditions on which we want to unswitch, which

    look like:

    Invariant1

    <

    = Invariant2

    Invariant2

    <

    = Invariant3

    ...

    Though they might not immediately exist in the IR, we can still inject them.

    Defined at line 3264 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void printArchiveChild (StringRef Filename, const Archive::Child & C)

    Defined at line 3265 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool detectShiftUntilZeroIdiom (Loop * CurLoop, ScalarEvolution * SE, Instruction *& ValShiftedIsZero, Intrinsic::ID & IntrinID, Instruction *& IV, Value *& Start, Value *& Val, const SCEV *& ExtraOffsetExpr, bool & InvertedCond)

    Return true if the idiom is detected in the loop.

    The core idiom we are trying to detect is:

    Code

                                                    
                                                           entry:
                                                             <...>
                                                             %start = <...>
                                                             %extraoffset = <...>
                                                             <...>
                                                             br label %for.cond
                                                        
                                                           loop:
                                                             %iv = phi i8 [ %start, %entry ], [ %iv.next, %for.cond ]
                                                             %nbits = add nsw i8 %iv, %extraoffset
                                                             %val.shifted = {{l,a}shr,shl} i8 %val, %nbits
                                                             %val.shifted.iszero = icmp eq i8 %val.shifted, 0
                                                             %iv.next = add i8 %iv, 1
                                                             <...>
                                                             br i1 %val.shifted.iszero, label %end, label %loop
                                                        
                                                           end:
                                                             %iv.res = phi i8 [ %iv, %loop ] <...>
                                                             %nbits.res = phi i8 [ %nbits, %loop ] <...>
                                                             %val.shifted.res = phi i8 [ %val.shifted, %loop ] <...>
                                                             %val.shifted.iszero.res = phi i1 [ %val.shifted.iszero, %loop ] <...>
                                                             %iv.next.res = phi i8 [ %iv.next, %loop ] <...>
                                                             <...>
                                                    
                                                

    Defined at line 3267 of file llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  • void checkBasicSSA (DominatorTree & DT, GCPtrLivenessData & Data, BasicBlock & BB)

    Check that all the liveness sets used during the computation of liveness

    obey basic SSA properties. This is useful for finding cases where we miss

    a def.

    Defined at line 3269 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • unsigned int computeRemLatency (SchedBoundary & CurrZone)

    Compute remaining latency. We need this both to determine whether the

    overall schedule has become latency-limited and whether the instructions

    outside this zone are resource or latency limited.

    The "dependent" latency is updated incrementally during scheduling as the

    max height/depth of scheduled nodes minus the cycles since it was

    scheduled:

    DLat = max (N.depth - (CurrCycle - N.ReadyCycle) for N in Zone

    The "independent" latency is the max ready queue depth:

    ILat = max N.depth for N in Available|Pending

    RemainingLatency is the greater of independent and dependent latency.

    These computations are expensive, especially in DAGs with many edges, so

    only do them if necessary.

    Defined at line 3270 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • const char * getWholeProgDevirtResByArgKindName (Kind K)

    Defined at line 3270 of file llvm/lib/IR/AsmWriter.cpp

  • pair lookThroughShuffles (Use * U, int Lane)

    Defined at line 3271 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • bool trySimplifyICmpWithAdds (CmpPredicate Pred, Value * LHS, Value * RHS, const InstrInfoQuery & IIQ)

    If only one of the icmp's operands has NSW flags, try to prove that:

    icmp slt/sgt/sle/sge (x + C1), (x +nsw C2)

    is equivalent to:

    icmp slt/sgt/sle/sge C1, C2

    which is true if x + C2 has the NSW flags set and:

    *) C1

    <

    = C2

    &

    &

    C1 >= 0, or

    *) C2

    <

    = C1

    &

    &

    C1

    <

    = 0.

    Defined at line 3274 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • unsigned int getNewOpcFromTable (int Table, unsigned int Opc)

    Defined at line 3278 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • MCSymbol * emitRnglistsTableHeader (AsmPrinter * Asm, const DwarfFile & Holder)

    Emit the header of a DWARF 5 range list table list table. Returns the symbol

    that designates the end of the table for the caller to emit when the table is

    complete.

    Defined at line 3279 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • const char * GuessIndirectSymbol (uint64_t ReferenceValue, struct DisassembleInfo * info)

    GuessIndirectSymbol returns the name of the indirect symbol for the

    ReferenceValue passed in or nullptr. This is used when ReferenceValue maybe

    an address of a symbol stub or a lazy or non-lazy pointer to associate the

    symbol name being referenced by the stub or pointer.

    Defined at line 3281 of file llvm/tools/llvm-objdump/MachODump.cpp

  • const char * getTTResKindName (Kind K)

    Defined at line 3285 of file llvm/lib/IR/AsmWriter.cpp

  • SmallVector generateInstLaneVectorFromOperand (ArrayRef Item, int Op)

    Defined at line 3289 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • int showMemProfProfile (ShowFormat SFormat, raw_fd_ostream & OS)

    Defined at line 3291 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • MCSymbol * emitLoclistsTableHeader (AsmPrinter * Asm, const DwarfDebug & DD)

    Emit the header of a DWARF 5 locations list table. Returns the symbol that

    designates the end of the table for the caller to emit when the table is

    complete.

    Defined at line 3297 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • Instruction * foldSelectOfSymmetricSelect (SelectInst & OuterSelVal, InstCombiner::BuilderTy & Builder)

    Folds patterns like:

    select c2 (select c1 a b) (select c1 b a)

    into:

    select (xor c1 c2) b a

    Defined at line 3297 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • Value * simplifyICmpWithBinOp (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    TODO: A large part of this logic is duplicated in InstCombine's

    foldICmpBinOp(). We should be able to share that and avoid the code

    duplication.

    Defined at line 3299 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SDValue getAsCarry (const TargetLowering & TLI, SDValue V, bool ForceCarryReconstruction)

    Defined at line 3302 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool collectUnswitchCandidatesWithInjections (SmallVectorImpl<NonTrivialUnswitchCandidate> & UnswitchCandidates, IVConditionInfo & PartialIVInfo, Instruction *& PartialIVCondBranch, Loop & L, const DominatorTree & DT, const LoopInfo & LI, AAResults & AA, const MemorySSAUpdater * MSSAU)

    Collect unswitch candidates by invariant conditions that are not immediately

    present in the loop. However, they can be injected into the code if we

    decide it's profitable.

    An example of such conditions is following:

    for (...) {

    x = load ...

    if (! x

    ) break;

    if (! x

    ) break;

    <do

    something>

    }

    We can unswitch by condition "C1 <=u C2". If that is true, then "x

    <

    =

    C2" automatically implies "x

    -variant checks in unswitched loop version.

    Defined at line 3302 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool isFreeConcat (ArrayRef Item, TargetCostKind CostKind, const TargetTransformInfo & TTI)

    Detect concat of multiple values into a vector

    Defined at line 3304 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • void emitMatchClassKindNames (int & Infos, raw_ostream & OS)

    Emit a function mapping match classes to strings, for debugging.

    Defined at line 3310 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • bool shouldWarnForInvalidStartStopAddress (ObjectFile * Obj)

    For ELF only now.

    Defined at line 3314 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • template <typename Ranges, typename PayloadEmitter>
    void emitRangeList (DwarfDebug & DD, AsmPrinter * Asm, MCSymbol * Sym, const Ranges & R, const DwarfCompileUnit & CU, unsigned int BaseAddressx, unsigned int OffsetPair, unsigned int StartxLength, unsigned int StartxEndx, unsigned int EndOfList, StringRef (*)(unsigned int) StringifyEnum, bool ShouldUseBaseAddress, PayloadEmitter EmitPayload)

    Defined at line 3315 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • uint64_t countMBBInstruction (MachineBasicBlock * MBB)

    Count the number of actual machine instructions.

    Defined at line 3320 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • void checkForInvalidStartStopAddress (ObjectFile * Obj, uint64_t Start, uint64_t Stop)

    Defined at line 3322 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • Value * foldAndOrOfICmpEqConstantAndICmp (ICmpInst * LHS, ICmpInst * RHS, bool IsAnd, bool IsLogical, IRBuilderBase & Builder)

    (icmp eq X, C) | (icmp ult Other, (X - C)) -> (icmp ule Other, (X - (C + 1)))

    (icmp ne X, C)

    &

    (icmp uge Other, (X - C)) -> (icmp ugt Other, (X - (C + 1)))

    Defined at line 3325 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • Instruction * foldNestedSelects (SelectInst & OuterSelVal, InstCombiner::BuilderTy & Builder)

    Look for patterns like

    %outer.cond = select i1 %inner.cond, i1 %alt.cond, i1 false

    %inner.sel = select i1 %inner.cond, i8 %inner.sel.t, i8 %inner.sel.f

    %outer.sel = select i1 %outer.cond, i8 %outer.sel.t, i8 %inner.sel

    and rewrite it as

    %inner.sel = select i1 %cond.alternative, i8 %sel.outer.t, i8 %sel.inner.t

    %sel.outer = select i1 %cond.inner, i8 %inner.sel, i8 %sel.inner.f

    Defined at line 3326 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • basic_string getNameForFeatureBitset (ArrayRef<const Record *> FeatureBitset)

    Defined at line 3329 of file llvm/utils/TableGen/AsmMatcherEmitter.cpp

  • Value * generateNewInstTree (ArrayRef Item, FixedVectorType * Ty, const SmallPtrSet<Use *, 4> & IdentityLeafs, const SmallPtrSet<Use *, 4> & SplatLeafs, const SmallPtrSet<Use *, 4> & ConcatLeafs, IRBuilderBase & Builder, const TargetTransformInfo * TTI)

    Defined at line 3338 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • SUnit * multipleIterations (SUnit * SU, SwingSchedulerDAG * DAG)

    If an instruction has a use that spans multiple iterations, then

    return true. These instructions are characterized by having a back-ege

    to a Phi, which contains a reference to another Phi.

    Defined at line 3340 of file llvm/lib/CodeGen/MachinePipeliner.cpp

  • int showDebugInfoCorrelation (const std::string & Filename, ShowFormat SFormat, raw_fd_ostream & OS)

    Defined at line 3341 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • int StackMallocSizeClass (uint64_t LocalStackSize)

    Fake stack allocator (asan_fake_stack.h) has 11 size classes

    for every power of 2 from kMinStackMallocSize to kMaxAsanStackMallocSizeClass

    Defined at line 3342 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • void dumpObject (ObjectFile * O, const Archive * A, const Archive::Child * C)

    Defined at line 3350 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • SDValue foldAddSubMasked1 (bool IsAdd, SDValue N0, SDValue N1, SelectionDAG & DAG, const SDLoc & DL)

    Given the operands of an add/sub operation, see if the 2nd operand is a

    masked 0/1 whose source operand is actually known to be 0/-1. If so, invert

    the opcode and bypass the mask operation.

    Defined at line 3354 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • CondCode getSwappedCondition (CondCode CC)

    Assuming the flags are set by MI(a,b), return the condition code if we

    modify the instructions such that flags are set by MI(b,a).

    Defined at line 3356 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool isSafeForNoNTrivialUnswitching (Loop & L, LoopInfo & LI)

    Defined at line 3357 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void method_reference (struct DisassembleInfo * info, uint64_t * ReferenceType, const char ** ReferenceName)

    method_reference() is called passing it the ReferenceName that might be

    a reference it to an Objective-C method call. If so then it allocates and

    assembles a method call string with the values last seen and saved in

    the DisassembleInfo's class_name and selector_name fields. This is saved

    into the method field of the info and any previous string is free'ed.

    Then the class_name field in the info is set to nullptr. The method call

    string is set into ReferenceName and ReferenceType is set to

    LLVMDisassembler_ReferenceType_Out_Objc_Message. If this not a method call

    then both ReferenceType and ReferenceName are left unchanged.

    Defined at line 3362 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void LLVMPositionBuilderImpl (IRBuilder<> * Builder, BasicBlock * Block, Instruction * Instr, bool BeforeDbgRecords)

    Defined at line 3363 of file llvm/lib/IR/Core.cpp

  • bool isLiveThrough (LiveQueryResult Q)

    Check if the segment consists of a copied live-through value (i.e. the copy

    in the block only extended the liveness, of an undef value which we may need

    to handle).

    Defined at line 3366 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • bool canFoldIVIncExpr (const SCEV * IncExpr, Instruction * UserInst, Value * Operand, const TargetTransformInfo & TTI)

    Return true if the IVInc can be folded into an addressing mode.

    Defined at line 3368 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • int show_main (StringRef ProgName)

    Defined at line 3376 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • int getMipsRegisterSize (uint8_t Flag)

    Defined at line 3377 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void initializeGVNLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 3390 of file llvm/lib/Transforms/Scalar/GVN.cpp

  • const char * getSummaryKindName (SummaryKind SK)

    Defined at line 3390 of file llvm/lib/IR/AsmWriter.cpp

  • template <class ELFT>
    void printMipsReginfoData (ScopedPrinter & W, const Elf_Mips_RegInfo<ELFT> & Reginfo)

    Defined at line 3393 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool impliesPoisonOrCond (const Value * ValAssumedPoison, const Value * V, bool Expected)

    Return true if V is poison or

    given that ValAssumedPoison is

    already poison. For example, if ValAssumedPoison is `icmp samesign X, 10`

    and V is `icmp ne X, 5`, impliesPoisonOrCond returns true.

    Defined at line 3400 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • NonTrivialUnswitchCandidate findBestNonTrivialUnswitchCandidate (ArrayRef UnswitchCandidates, const Loop & L, const DominatorTree & DT, const LoopInfo & LI, AssumptionCache & AC, const TargetTransformInfo & TTI, const IVConditionInfo & PartialIVInfo)

    Defined at line 3400 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • bool mayUseCarryFlag (CondCode CC)

    Defined at line 3407 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • int order_main ()

    Defined at line 3409 of file llvm/tools/llvm-profdata/llvm-profdata.cpp

  • bool isFloatDIType (const DIType * Ty)

    Defined at line 3413 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • uint64_t GuessPointerPointer (uint64_t ReferenceValue, struct DisassembleInfo * info, bool & classref, bool & selref, bool & msgref, bool & cfstring)

    GuessPointerPointer() is passed the address of what might be a pointer to

    a reference to an Objective-C class, selector, message ref or cfstring.

    If so the value of the pointer is returned and one of the booleans are set

    to true. If not zero is returned and all the booleans are set to false.

    Defined at line 3428 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void dumpObject (const COFFImportFile * I, const Archive * A, const Archive::Child * C)

    Defined at line 3430 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • template <class ELFT>
    Expected<const Elf_Mips_Options<ELFT> *> readMipsOptions (const uint8_t * SecBegin, ArrayRef<uint8_t> & SecData, bool & IsSupported)

    Defined at line 3431 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • int computeThresholdFromOptLevels (unsigned int OptLevel, unsigned int SizeOptLevel)

    Compute the default threshold for inlining based on the opt level and the

    size opt level.

    Defined at line 3434 of file llvm/lib/Analysis/InlineCost.cpp

  • void emitLocList (DwarfDebug & DD, AsmPrinter * Asm, const DebugLocStream::List & List)

    Handles emission of both debug_loclist / debug_loclist.dwo

    Defined at line 3436 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • basic_string getLinkageName (LinkageTypes LT)

    Defined at line 3436 of file llvm/lib/IR/AsmWriter.cpp

  • bool findReaching (BasicBlock * BB, BasicBlock * DefBB, BlocksSet & ReachesNonLocalUses)

    Return false if number of blocks searched is too much.

    Defined at line 3448 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void dumpArchive (const Archive * A)

    Dump each object file in

    Defined at line 3448 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void findStoresToUninstrumentedArgAllocas (AddressSanitizer & ASan, Instruction & InsBefore, SmallVectorImpl<Instruction *> & InitInsts)

    Collect instructions in the entry block after

    which initialize

    permanent storage for a function argument. These instructions must remain in

    the entry block so that uninitialized values do not appear in backtraces. An

    added benefit is that this conserves spill slots. This does not move stores

    before instrumented / "interesting" allocas.

    Defined at line 3448 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • bool isConstValidTrue (const TargetLowering & TLI, unsigned int ScalarSizeBits, int64_t Cst, bool IsVector, bool IsFP)

    Defined at line 3459 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • bool blockIsSimpleEnoughToThreadThrough (BasicBlock * BB, BlocksSet & NonLocalUseBlocks)

    Return true if we can thread a branch across this block.

    Defined at line 3464 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • basic_string getLinkageNameWithSpace (LinkageTypes LT)

    When printing the linkage types in IR where the ExternalLinkage is

    not printed, and other linkage types are expected to be printed with

    a space after the name.

    Defined at line 3467 of file llvm/lib/IR/AsmWriter.cpp

  • void dumpSmallBitVector (SmallBitVector & BV)

    For debugging purposes, dump a small bit vector to dbgs().

    Defined at line 3467 of file llvm/lib/Analysis/DependenceAnalysis.cpp

  • void verifyConvergenceControl (const MachineFunction & MF, MachineDominatorTree & DT, std::function<void (const Twine &)> FailureCB, raw_ostream & OS)

    Defined at line 3468 of file llvm/lib/CodeGen/MachineVerifier.cpp

  • std::pair<ISD::CondCode, ISD::NodeType> getExpandedMinMaxOps (int Op)

    Defined at line 3469 of file llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp

  • void dumpInput (StringRef file)

    Open file and figure out how to dump it.

    Defined at line 3472 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • const char * getVisibilityName (VisibilityTypes Vis)

    Defined at line 3473 of file llvm/lib/IR/AsmWriter.cpp

  • bool isDefInSubRange (LiveInterval & LI, SlotIndex Def)

    Check if any of the subranges of

    contain a definition at

    Defined at line 3479 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • bool isFusableLoadOpStorePattern (StoreSDNode * StoreNode, SDValue StoredVal, SelectionDAG * CurDAG, unsigned int LoadOpNo, LoadSDNode *& LoadNode, SDValue & InputChain)

    Check whether or not the chain ending in StoreNode is suitable for doing

    the {load; op; store} to modify transformation.

    Defined at line 3480 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • const char * getImportTypeName (ImportKind IK)

    Defined at line 3485 of file llvm/lib/IR/AsmWriter.cpp

  • void forEachJumpTableBranch (const MachineFunction * MF, bool isThumb, const std::function<void (const MachineJumpTableInfo &, const MachineInstr &, int64_t)> & Callback)

    Defined at line 3487 of file llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp

  • const char * get_pointer_64 (uint64_t Address, uint32_t & offset, uint32_t & left, SectionRef & S, DisassembleInfo * info, bool objc_only)

    get_pointer_64 returns a pointer to the bytes in the object file at the

    Address from a section in the Mach-O file. And indirectly returns the

    offset into the section, number of bytes left in the section past the offset

    and which section is was being referenced. If the Address is not in a

    section nullptr is returned.

    Defined at line 3490 of file llvm/tools/llvm-objdump/MachODump.cpp

  • StringRef getAllocaName (AllocaInst * AI)

    Defined at line 3496 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  • template <typename T>
    void parseIntArg (const llvm::opt::InputArgList & InputArgs, int ID, T & Value)

    Defined at line 3498 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • ConstantInt * getKnownValueOnEdge (Value * V, BasicBlock * From, BasicBlock * To)

    Defined at line 3503 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • SDValue extractBooleanFlip (SDValue V, SelectionDAG & DAG, const TargetLowering & TLI, bool Force)

    Flips a boolean if it is cheaper to compute. If the Force parameters is set,

    then the flip also occurs if computing the inverse is the same cost.

    This function returns an empty SDValue in case it cannot flip the boolean

    without increasing the cost of the computation. If you want to flip a boolean

    no matter what, use DAG.getLogicalNOT.

    Defined at line 3504 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void tracePick (CandReason Reason, bool IsTop, bool IsPostRA)

    Defined at line 3504 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • object::BuildID parseBuildIDArg (const opt::Arg * A)

    Defined at line 3510 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • int commaSeparatedValues (const llvm::opt::InputArgList & InputArgs, int ID)

    Defined at line 3524 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • optional foldCondBranchOnValueKnownInPredecessorImpl (BranchInst * BI, DomTreeUpdater * DTU, const DataLayout & DL, AssumptionCache * AC)

    If we have a conditional branch on something for which we know the constant

    value in predecessors (e.g. a phi node in the current block), thread edges

    from the predecessor to their ultimate destination.

    Defined at line 3524 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • const std::optional<BitPart> & collectBitParts (Value * V, bool MatchBSwaps, bool MatchBitReversals, int & BPS, int Depth, bool & FoundRoot)

    Analyze the specified subexpression and see if it is capable of providing

    pieces of a bswap or bitreverse. The subexpression provides a potential

    piece of a bswap or bitreverse if it can be proved that each non-zero bit in

    the output of the expression came from a corresponding bit in some other

    value. This function is recursive, and the end result is a mapping of

    bitnumber to bitnumber. It is the caller's responsibility to validate that

    the bitnumber to bitnumber mapping is correct for a bswap or bitreverse.

    For example, if the current subexpression if "(shl i32 %X, 24)" then we know

    that the expression deposits the low byte of %X into the high byte of the

    result and that all other bits are zero. This expression is accepted and a

    BitPart is returned with Provider set to %X and Provenance[24-31] set to

    [0-7].

    For vector types, all analysis is performed at the per-element level. No

    cross-element analysis is supported (shuffle/insertion/reduction), and all

    constant masks must be splatted across all elements.

    To avoid revisiting values, the BitPart results are memoized into the

    provided map. To avoid unnecessary copying of BitParts, BitParts are

    constructed in-place in the

    map. Because of this

    needs to

    store BitParts objects, not pointers. As we need the concept of a nullptr

    BitParts (Value has been analyzed and the analysis failed), we an Optional

    type instead to provide the same functionality.

    Because we pass around references into

    we must use a container that

    does not invalidate internal references (std::map instead of DenseMap).

    Defined at line 3524 of file llvm/lib/Transforms/Utils/Local.cpp

  • const char * get_pointer_32 (uint32_t Address, uint32_t & offset, uint32_t & left, SectionRef & S, DisassembleInfo * info, bool objc_only)

    Defined at line 3528 of file llvm/tools/llvm-objdump/MachODump.cpp

  • unsigned int getHiPELiteral (NamedMDNode * HiPELiteralsMD, StringRef LiteralName)

    Lookup an ERTS parameter in the !hipe.literals named metadata node.

    HiPE provides Erlang Runtime System-internal parameters, such as PCB offsets

    to fields it needs, through a named metadata node "hipe.literals" containing

    name-value pairs.

    Defined at line 3529 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • bool isNeverEqualToUnescapedAlloc (Value * V, const TargetLibraryInfo & TLI, Instruction * AI)

    Defined at line 3533 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • Value * simplifyICmpWithMinMax (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    simplify integer comparisons where at least one operand of the compare

    matches an integer min/max idiom.

    Defined at line 3533 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void mcpuHelp ()

    Defined at line 3536 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • const char * get_symbol_64 (uint32_t sect_offset, SectionRef S, DisassembleInfo * info, uint64_t & n_value, uint64_t ReferenceValue)

    get_symbol_64() returns the name of a symbol (or nullptr) and the address of

    the symbol indirectly through n_value. Based on the relocation information

    for the specified section offset in the specified section reference.

    If no relocation information is found and a non-zero ReferenceValue for the

    symbol is passed, look up that address in the info's AddrMap.

    Defined at line 3540 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isRemovableWrite (CallBase & CB, Value * UsedV, const TargetLibraryInfo & TLI)

    Given a call CB which uses an address UsedV, return true if we can prove the

    call's only possible effect is storing to V.

    Defined at line 3545 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • bool HandleUse (TreePattern & I, TreePatternNodePtr Pat, int & InstInputs)

    HandleUse - Given "Pat" a leaf in the pattern, check to see if it is an

    instruction input. Return true if this is a real use.

    Defined at line 3547 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool blockEndIsUnreachable (const MachineBasicBlock & MBB, int MBBI)

    Return true if there are no non-ehpad successors to MBB and there are no

    non-meta instructions between MBBI and MBB.end().

    Defined at line 3551 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • void expandVPWidenIntOrFpInduction (VPWidenIntOrFpInductionRecipe * WidenIVR, VPTypeAnalysis & TypeInfo)

    Expand a VPWidenIntOrFpInduction into executable recipes, for the initial

    value, phi and backedge value. In the following example:

    vector.ph:

    Successor(s): vector loop

    <x1

    > vector loop: {

    vector.body:

    WIDEN-INDUCTION %i = phi %start, %step, %vf

    ...

    EMIT branch-on-count ...

    No successors

    }

    WIDEN-INDUCTION will get expanded to:

    vector.ph:

    ...

    vp

    <

    %induction.start> = ...

    vp

    <

    %induction.increment> = ...

    Successor(s): vector loop

    <x1

    > vector loop: {

    vector.body:

    ir

    <

    %i> = WIDEN-PHI vp

    <

    %induction.start>, vp

    <

    %vec.ind.next>

    ...

    vp

    <

    %vec.ind.next> = add ir

    <

    %i>, vp

    <

    %induction.increment>

    EMIT branch-on-count ...

    No successors

    }

    Defined at line 3552 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool shouldInsertFreeze (Loop & L, Instruction & TI, DominatorTree & DT, AssumptionCache & AC)

    Insert a freeze on an unswitched branch if all is true:

    1. freeze-loop-unswitch-cond option is true

    2. The branch may not execute in the loop pre-transformation. If a branch may

    not execute and could cause UB, it would always cause UB if it is hoisted outside

    of the loop. Insert a freeze to prevent this case.

    3. The branch condition may be poison or undef

    Defined at line 3557 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • basic_string gtest_FindAllocaForValueTestFindAllocaForValueTest_EvalGenerateName_ (const ::testing::TestParamInfo<FindAllocaForValueTest::ParamType> & info)

    Defined at line 3559 of file llvm/unittests/Analysis/ValueTrackingTest.cpp

  • ParamGenerator gtest_FindAllocaForValueTestFindAllocaForValueTest_EvalGenerator_ ()

    Defined at line 3559 of file llvm/unittests/Analysis/ValueTrackingTest.cpp

  • void printFields (formatted_raw_ostream & OS, StringRef Str1, StringRef Str2)

    Defined at line 3565 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool hasNonZeroFPOperands (const CmpInst * Cmp)

    Returns true if either operand of CmpInst is a provably non-zero

    floating-point constant.

    Defined at line 3565 of file llvm/lib/IR/Instructions.cpp

  • std::optional<ModRefInfo> isAllocSiteRemovable (Instruction * AI, SmallVectorImpl<WeakTrackingVH> & Users, const TargetLibraryInfo & TLI, bool KnowInit)

    Defined at line 3565 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • template <class ELFT>
    basic_string getSectionHeadersNumString (const ELFFile<ELFT> & Obj, StringRef FileName)

    Defined at line 3575 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool unswitchBestCondition (Loop & L, DominatorTree & DT, LoopInfo & LI, AssumptionCache & AC, AAResults & AA, TargetTransformInfo & TTI, ScalarEvolution * SE, MemorySSAUpdater * MSSAU, LPMUpdater & LoopUpdater)

    Defined at line 3577 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • void getUnmergePieces (SmallVectorImpl<Register> & Pieces, MachineIRBuilder & B, Register Src, LLT Ty)

    Defined at line 3579 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • Instruction * createReverseEVL (IRBuilderBase & Builder, Value * Operand, Value * EVL, const Twine & Name)

    Use all-true mask for reverse rather than actual mask, as it avoids a

    dependence w/o affecting the result.

    Defined at line 3579 of file llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

  • void emitLoadFromConstantPool (Register DstReg, const Constant * ConstVal, MachineIRBuilder & MIRBuilder)

    Defined at line 3586 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • void parseOtoolOptions (const llvm::opt::InputArgList & InputArgs)

    Defined at line 3590 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • template <class ELFT>
    basic_string getSectionHeaderTableIndexString (const ELFFile<ELFT> & Obj, StringRef FileName)

    Defined at line 3595 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • const char * get_symbol_32 (uint32_t sect_offset, SectionRef S, DisassembleInfo * info, uint32_t ReferenceValue)

    Defined at line 3598 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isX87Reg (Register Reg)

    Return true if the Reg is X87 register.

    Defined at line 3599 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void initSlots2BasicBlocks (const Function & F, int & Slots2BasicBlocks)

    Defined at line 3607 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • Value * foldOrOfInversions (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Defined at line 3612 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • const EnumEntry<unsigned int> * getObjectFileEnumEntry (unsigned int Type)

    Defined at line 3615 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • APInt gcd (const SCEVConstant * C1, const SCEVConstant * C2)

    Defined at line 3616 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • const BasicBlock * getIRBlockFromSlot (unsigned int Slot, const int & Slots2BasicBlocks)

    Defined at line 3622 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp

  • void tracePick (const GenericSchedulerBase::SchedCandidate & Cand, bool IsPostRA)

    Defined at line 3632 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • bool matchSubIntegerPackFromVector (Value * V, Value *& Vec, int64_t & VecOffset, SmallBitVector & Mask, const DataLayout & DL)

    Match

    as "shufflevector -> bitcast" or "extractelement -> zext -> shl"

    patterns, which extract vector elements and pack them in the same relative

    positions.

    is the underlying vector being extracted from.

    is a bitmask identifying which packed elements are obtained from the

    vector.

    is the vector element corresponding to index 0 of the

    mask.

    Defined at line 3640 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void parseObjdumpOptions (const llvm::opt::InputArgList & InputArgs)

    Defined at line 3641 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • void emitRangeList (DwarfDebug & DD, AsmPrinter * Asm, const RangeSpanList & List)

    Emit a single range list. We handle both DWARF v5 and earlier.

    Defined at line 3662 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void expandVPWidenPointerInduction (VPWidenPointerInductionRecipe * R, VPTypeAnalysis & TypeInfo)

    Expand a VPWidenPointerInductionRecipe into executable recipes, for the

    initial value, phi and backedge value. In the following example:

    <x1

    > vector loop: {

    vector.body:

    EMIT ir

    <

    %ptr.iv> = WIDEN-POINTER-INDUCTION %start, %step, %vf

    ...

    EMIT branch-on-count ...

    }

    WIDEN-POINTER-INDUCTION will get expanded to:

    <x1

    > vector loop: {

    vector.body:

    EMIT-SCALAR %pointer.phi = phi %start, %ptr.ind

    EMIT %mul = mul %stepvector, %step

    EMIT %vector.gep = wide-ptradd %pointer.phi, %mul

    ...

    EMIT %ptr.ind = ptradd %pointer.phi, %vf

    EMIT branch-on-count ...

    }

    Defined at line 3663 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • FastMathFlags mapFromLLVMFastMathFlags (LLVMFastMathFlags FMF)

    --.. Arithmetic ..........................................................--

    Defined at line 3670 of file llvm/lib/IR/Core.cpp

  • bool unswitchLoop (Loop & L, DominatorTree & DT, LoopInfo & LI, AssumptionCache & AC, AAResults & AA, TargetTransformInfo & TTI, bool Trivial, bool NonTrivial, ScalarEvolution * SE, MemorySSAUpdater * MSSAU, LPMUpdater & LoopUpdater)

    Unswitch control flow predicated on loop invariant conditions.

    This first hoists all branches or switches which are trivial (IE, do not

    require duplicating any part of the loop) out of the loop body. It then

    looks at other loop invariant control flows and tries to unswitch those as

    well by cloning the loop if the result is small enough.

    The `DT`, `LI`, `AC`, `AA`, `TTI` parameters are required analyses that are

    also updated based on the unswitch. The `MSSA` analysis is also updated if

    valid (i.e. its use is enabled).

    If either `NonTrivial` is true or the flag `EnableNonTrivialUnswitch` is

    true, we will attempt to do non-trivial unswitching as well as trivial

    unswitching.

    The `postUnswitch` function will be run after unswitching is complete

    with information on whether or not the provided loop remains a loop and

    a list of new sibling loops created.

    If `SE` is non-null, we will update that analysis based on the unswitching

    done.

    Defined at line 3670 of file llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  • LLVMFastMathFlags mapToLLVMFastMathFlags (FastMathFlags FMF)

    Defined at line 3683 of file llvm/lib/IR/Core.cpp

  • SDValue combineUADDO_CARRYDiamond (DAGCombiner & Combiner, SelectionDAG & DAG, SDValue X, SDValue Carry0, SDValue Carry1, SDNode * N)

    If we are facing some sort of diamond carry propagation pattern try to

    break it up to generate something like:

    (uaddo_carry X, 0, (uaddo_carry A, B, Z):Carry)

    The end result is usually an increase in operation required, but because the

    carry is now linearized, other transforms can kick in and optimize the DAG.

    Patterns typically look something like

    (uaddo A, B)

    /

    \

    Carry Sum

    |

    \

    | (uaddo_carry *, 0, Z)

    | /

    \

    Carry

    | /

    (uaddo_carry X, *, *)

    But numerous variation exist. Our goal is to identify A, B, X and Z and

    produce a combine with a single path for carry propagation.

    Defined at line 3687 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Register getBitcastWiderVectorElementOffset (MachineIRBuilder & B, Register Idx, unsigned int NewEltSize, unsigned int OldEltSize)

    Figure out the bit offset into a register when coercing a vector index for

    the wide element type. This is only for the case when promoting vector to

    one with larger elements.

    %offset_idx = G_AND %idx, ~(-1

    <

    <

    Log2(DstEltSize / SrcEltSize))

    %offset_bits = G_SHL %offset_idx, Log2(SrcEltSize)

    Defined at line 3703 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • void emitMacroHeader (AsmPrinter * Asm, const DwarfDebug & DD, const DwarfCompileUnit & CU, uint16_t DwarfVersion)

    Emit the header of a DWARF 5 macro section, or the GNU extension for

    DWARF 4.

    Defined at line 3714 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  • void patchAndReplaceAllUsesWith (Instruction * I, Value * Repl)

    Defined at line 3718 of file llvm/lib/Transforms/Scalar/NewGVN.cpp

  • Value * simplifyICmpWithDominatingAssume (CmpPredicate Predicate, Value * LHS, Value * RHS, const SimplifyQuery & Q)

    Defined at line 3718 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool foldTwoEntryPHINode (PHINode * PN, const TargetTransformInfo & TTI, DomTreeUpdater * DTU, AssumptionCache * AC, const DataLayout & DL, bool SpeculateUnpredictables)

    Given a BB that starts with the specified two-entry PHI node,

    see if we can eliminate it.

    Defined at line 3725 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Value * simplifyICmpWithIntrinsicOnLHS (CmpPredicate Pred, Value * LHS, Value * RHS)

    Defined at line 3741 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * createBitOrPointerCast (IRBuilderBase & Builder, Value * V, VectorType * DstVTy, const DataLayout & DL)

    Defined at line 3742 of file llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

  • Instruction * foldIntegerPackFromVector (Instruction & I, InstCombiner::BuilderTy & Builder, const DataLayout & DL)

    Try to fold the join of two scalar integers whose contents are packed

    elements of the same vector.

    Defined at line 3743 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool isSafeToRemoveBitCeilSelect (Predicate Pred, Value * Cond0, const APInt * Cond1, Value * CtlzOp, unsigned int BitWidth, bool & ShouldDropNoWrap)

    Return true if we can safely remove the select instruction for std::bit_ceil

    pattern.

    Defined at line 3743 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool bitTransformIsCorrectForBSwap (unsigned int From, unsigned int To, unsigned int BitWidth)

    Defined at line 3745 of file llvm/lib/Transforms/Utils/Local.cpp

  • bool bitTransformIsCorrectForBitReverse (unsigned int From, unsigned int To, unsigned int BitWidth)

    Defined at line 3756 of file llvm/lib/Transforms/Utils/Local.cpp

  • Instruction * foldCtpopPow2Test (ICmpInst & I, IntrinsicInst * CtpopLhs, const APInt & CRhs, InstCombiner::BuilderTy & Builder, const SimplifyQuery & Q)

    Defined at line 3756 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • std::optional<std::pair<Value *, Value *>> getInvertibleOperands (const Operator * Op1, const Operator * Op2)

    If the pair of operators are the same invertible function, return the

    the operands of the function corresponding to each input. Otherwise,

    return std::nullopt. An invertible function is one that is 1-to-1 and maps

    every input value to exactly one output value. This is equivalent to

    saying that Op1 and Op2 are equal exactly when the specified pair of

    operands are equal, (except that Op1 and Op2 may be poison more often.)

    Defined at line 3758 of file llvm/lib/Analysis/ValueTracking.cpp

  • void checkReductionInfos (ArrayRef<OpenMPIRBuilder::ReductionInfo> ReductionInfos, bool IsGPU)

    Defined at line 3759 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool isUndefOrEqual (int Val, int CmpVal)

    Val is the undef sentinel value or equal to the specified value.

    Defined at line 3765 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isUndefOrEqual (ArrayRef<int> Mask, int CmpVal)

    Return true if every element in Mask is the undef sentinel value or equal to

    the specified value.

    Defined at line 3771 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • optional getRange (Value * V, const InstrInfoQuery & IIQ)

    Helper method to get range from metadata or attribute.

    Defined at line 3774 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * interleaveVectors (IRBuilderBase & Builder, ArrayRef Vals, const Twine & Name)

    Return a vector containing interleaved elements from multiple

    smaller input vectors.

    Defined at line 3774 of file llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

  • bool isUndefOrEqualInRange (ArrayRef<int> Mask, int CmpVal, unsigned int Pos, unsigned int Size)

    Return true if every element in Mask, beginning from position Pos and ending

    in Pos+Size is the undef sentinel value or equal to the specified value.

    Defined at line 3779 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchZExtedSubInteger (Value * V, Value *& Int, APInt & Mask, uint64_t & Offset, bool & IsShlNUW, bool & IsShlNSW)

    Match

    as "lshr -> mask -> zext -> shl".

    is the underlying integer being extracted from.

    is a bitmask identifying which bits of the integer are being

    extracted.

    identifies which bit of the result

    corresponds to

    the least significant bit of

    Defined at line 3780 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool InferFromPattern (CodeGenInstruction & InstInfo, const InstAnalyzer & PatInfo, const Record * PatDef)

    Defined at line 3780 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • SDValue combineCarryDiamond (SelectionDAG & DAG, const TargetLowering & TLI, SDValue N0, SDValue N1, SDNode * N)

    If we are facing some sort of diamond carry/borrow in/out pattern try to

    match patterns like:

    (uaddo A, B) CarryIn

    |

    \

    |

    |

    \

    |

    PartialSum PartialCarryOutX /

    | | /

    | ____|____________/

    | / |

    (uaddo *, *)

    \

    ________

    |

    \

    \

    // |

    \

    |

    | PartialCarryOutY |

    |

    \

    |

    |

    \

    /

    AddCarrySum | ______/

    | /

    CarryOut = (or *, *)

    And generate UADDO_CARRY (or USUBO_CARRY) with two result values:

    {AddCarrySum, CarryOut} = (uaddo_carry A, B, CarryIn)

    Our goal is to identify A, B, and CarryIn and produce UADDO_CARRY/USUBO_CARRY

    with a single path for carry/borrow out propagation.

    Defined at line 3780 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void printMetadataIdentifier (StringRef Name, formatted_raw_ostream & Out)

    Defined at line 3783 of file llvm/lib/IR/AsmWriter.cpp

  • bool isUndefOrZero (int Val)

    Val is either the undef or zero sentinel value.

    Defined at line 3786 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • int llvm_objdump_main (int argc, char ** argv, const llvm::ToolContext & )

    Defined at line 3787 of file llvm/tools/llvm-objdump/llvm-objdump.cpp

  • bool isUndefInRange (ArrayRef<int> Mask, unsigned int Pos, unsigned int Size)

    Return true if every element in Mask, beginning from position Pos and ending

    in Pos+Size is the undef sentinel value.

    Defined at line 3792 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isUndefLowerHalf (ArrayRef<int> Mask)

    Return true if the mask creates a vector whose lower half is undefined.

    Defined at line 3798 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • MachineBasicBlock * getFallThroughMBB (MachineBasicBlock * MBB, MachineBasicBlock * TBB)

    Given a MBB and its TBB, find the FBB which was a fallthrough MBB (it may

    not be a fallthrough MBB now due to layout changes). Return nullptr if the

    fallthrough MBB cannot be identified.

    Defined at line 3802 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool isUndefUpperHalf (ArrayRef<int> Mask)

    Return true if the mask creates a vector whose upper half is undefined.

    Defined at line 3804 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool runAttributorOnFunctions (InformationCache & InfoCache, int & Functions, AnalysisGetter & AG, CallGraphUpdater & CGUpdater, bool DeleteFns, bool IsModulePass)

    ----------------------------------------------------------------------------

    Pass (Manager) Boilerplate

    ----------------------------------------------------------------------------

    Defined at line 3805 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • bool hasOnlySelectUsers (const Value * Cond)

    Check if the condition of the select has one use or two users that are both

    selects with the same condition.

    Defined at line 3808 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • bool isInRange (int Val, int Low, int Hi)

    Return true if Val falls within the specified range (L, H].

    Defined at line 3810 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isAnyInRange (ArrayRef<int> Mask, int Low, int Hi)

    Return true if the value of any element in Mask falls within the specified

    range (L, H].

    Defined at line 3816 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isAnyZero (ArrayRef<int> Mask)

    Return true if the value of any element in Mask is the zero sentinel value.

    Defined at line 3821 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * foldIntegerRepackThroughZExt (Value * Lhs, Value * Rhs, InstCombiner::BuilderTy & Builder)

    Try to fold the join of two scalar integers whose bits are unpacked and

    zexted from the same source integer.

    Defined at line 3821 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool isUndefOrInRange (int Val, int Low, int Hi)

    Return true if Val is undef or if its value falls within the

    specified range (L, H].

    Defined at line 3827 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void printVisibility (VisibilityTypes Vis, formatted_raw_ostream & Out)

    Defined at line 3827 of file llvm/lib/IR/AsmWriter.cpp

  • Register buildBitFieldInsert (MachineIRBuilder & B, Register TargetReg, Register InsertReg, Register OffsetBits)

    Emit code to insert

    into

    at

    in

    while preserving other bits in

    (InsertReg

    <

    <

    Offset) | (TargetReg

    &

    ~(-1 >> InsertReg.size())

    <

    <

    Offset)

    Defined at line 3831 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • bool isUndefOrInRange (ArrayRef<int> Mask, int Low, int Hi)

    Return true if every element in Mask is undef or if its value

    falls within the specified range (L, H].

    Defined at line 3833 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool convertSSEToAVX (MCInst & Inst)

    Defined at line 3834 of file llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp

  • void printDSOLocation (const GlobalValue & GV, formatted_raw_ostream & Out)

    Defined at line 3836 of file llvm/lib/IR/AsmWriter.cpp

  • Instruction * foldBitCeil (SelectInst & SI, IRBuilderBase & Builder, InstCombinerImpl & IC)

    Transform the std::bit_ceil(X) pattern like:

    %dec = add i32 %x, -1

    %ctlz = tail call i32

    .ctlz.i32(i32 %dec, i1 false)

    %sub = sub i32 32, %ctlz

    %shl = shl i32 1, %sub

    %ugt = icmp ugt i32 %x, 1

    %sel = select i1 %ugt, i32 %shl, i32 1

    into:

    %dec = add i32 %x, -1

    %ctlz = tail call i32

    .ctlz.i32(i32 %dec, i1 false)

    %neg = sub i32 0, %ctlz

    %masked = and i32 %ctlz, 31

    %shl = shl i32 1, %sub

    Note that the select is optimized away while the shift count is masked with

    31. We handle some variations of the input operand like std::bit_ceil(X +

    1).

    Defined at line 3838 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool isUndefOrZeroOrInRange (int Val, int Low, int Hi)

    Return true if Val is undef, zero or if its value falls within the

    specified range (L, H].

    Defined at line 3840 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void printDLLStorageClass (DLLStorageClassTypes SCT, formatted_raw_ostream & Out)

    Defined at line 3842 of file llvm/lib/IR/AsmWriter.cpp

  • bool hasNullFragReference (const DagInit * DI)

    hasNullFragReference - Return true if the DAG has any reference to the

    null_frag operator.

    Defined at line 3842 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool isUndefOrZeroOrInRange (ArrayRef<int> Mask, int Low, int Hi)

    Return true if every element in Mask is undef, zero or if its value

    falls within the specified range (L, H].

    Defined at line 3846 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void printThreadLocalModel (ThreadLocalMode TLM, formatted_raw_ostream & Out)

    Defined at line 3851 of file llvm/lib/IR/AsmWriter.cpp

  • bool isBlendOrUndef (ArrayRef<int> Mask)

    Return true if every element in Mask, is an in-place blend/select mask or is

    undef.

    Defined at line 3853 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • int isRepeatedByteSequence (const ConstantDataSequential * V)

    isRepeatedByteSequence - Determine whether the given value is

    composed of a repeated sequence of identical bytes and return the

    byte value. If it is not a repeated sequence, return -1.

    Defined at line 3854 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • const SCEV * CollectSubexprs (const SCEV * S, const SCEVConstant * C, SmallVectorImpl<const SCEV *> & Ops, const Loop * L, ScalarEvolution & SE, unsigned int Depth)

    Split S into subexpressions which can be pulled out into separate

    registers. If C is non-null, multiply each subexpression by C.

    Return remainder expression after factoring the subexpressions captured by

    Ops. If Ops is complete, return NULL.

    Defined at line 3857 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • DenseMap mapSectionsToGroups (ArrayRef Groups)

    Defined at line 3863 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool isSequentialOrUndefInRange (ArrayRef<int> Mask, unsigned int Pos, unsigned int Size, int Low, int Step)

    Return true if every element in Mask, beginning

    from position Pos and ending in Pos + Size, falls within the specified

    sequence (Low, Low + Step, ..., Low + (Size - 1) * Step) or is undef.

    Defined at line 3864 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool hasNullFragReference (const ListInit * LI)

    hasNullFragReference - Return true if any DAG in the list references

    the null_frag operator.

    Defined at line 3866 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • int isRepeatedByteSequence (const Value * V, const DataLayout & DL)

    isRepeatedByteSequence - Determine whether the given value is

    composed of a repeated sequence of identical bytes and return the

    byte value. If it is not a repeated sequence, return -1.

    Defined at line 3866 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • optional matchBitmaskMul (Value * V)

    Defined at line 3867 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • StringRef getUnnamedAddrEncoding (UnnamedAddr UA)

    Defined at line 3871 of file llvm/lib/IR/AsmWriter.cpp

  • bool isSequentialOrUndefOrZeroInRange (ArrayRef<int> Mask, unsigned int Pos, unsigned int Size, int Low, int Step)

    Return true if every element in Mask, beginning

    from position Pos and ending in Pos+Size, falls within the specified

    sequential range (Low, Low+Size], or is undef or is zero.

    Defined at line 3875 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isModifyingBinopOfNonZero (const Value * V1, const Value * V2, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Return true if V1 == (binop V2, X), where X is known non-zero.

    Only handle a small subset of binops where (binop V2, X) with non-zero X

    implies V2 != V1.

    Defined at line 3875 of file llvm/lib/Analysis/ValueTracking.cpp

  • void getInstructionsInTree (TreePatternNode & Tree, SmallVectorImpl<const Record *> & Instrs)

    Get all the instructions in a tree.

    Defined at line 3877 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • Instruction * tryToMoveFreeBeforeNullTest (CallInst & FI, const DataLayout & DL)

    Move the call to free before a NULL test.

    Check if this free is accessed after its argument has been test

    against NULL (property 0).

    If yes, it is legal to move this call in its predecessor block.

    The move is performed only if the block containing the call to free

    will be removed, i.e.:

    1. it has only one predecessor P, and P has two successors

    2. it contains the call, noops, and an unconditional branch

    3. its successor is the same as its predecessor's successor

    The profitability is out-of concern here and this function should

    be called only if the caller knows this transformation would be

    profitable (e.g., for code size).

    Defined at line 3879 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • void maybePrintComdat (formatted_raw_ostream & Out, const GlobalObject & GO)

    Defined at line 3883 of file llvm/lib/IR/AsmWriter.cpp

  • bool isUndefOrZeroInRange (ArrayRef<int> Mask, unsigned int Pos, unsigned int Size)

    Return true if every element in Mask, beginning

    from position Pos and ending in Pos+Size is undef or is zero.

    Defined at line 3886 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool checkOperandClass (const CGIOperandList::OperandInfo & OI, const Record * Leaf)

    Check the class of a pattern leaf node against the instruction operand it

    represents.

    Defined at line 3889 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool isCompletePermute (ArrayRef<int> Mask)

    Return true if every element of a single input is referenced by the shuffle

    mask. i.e. it just permutes them all.

    Defined at line 3893 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void initializeMachineBlockPlacementStatsLegacyPassOnce (PassRegistry & Registry)

    Defined at line 3897 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp

  • bool checkColdOrNotCold (uint8_t AllocType)

    helper function to check an AllocType is cold or notcold or both.

    Defined at line 3900 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • void emitGlobalAliasInline (AsmPrinter & AP, uint64_t Offset, int * AliasList)

    Defined at line 3900 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • Instruction * foldICmpIntrinsicWithIntrinsic (ICmpInst & Cmp, InstCombiner::BuilderTy & Builder)

    Fold an icmp with LLVM intrinsics

    Defined at line 3901 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool isNonEqualMul (const Value * V1, const Value * V2, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Return true if V2 == V1 * C, where V1 is known non-zero, C is not 0/1 and

    the multiplication is nuw or nsw.

    Defined at line 3904 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool runAttributorLightOnFunctions (InformationCache & InfoCache, int & Functions, AnalysisGetter & AG, CallGraphUpdater & CGUpdater, FunctionAnalysisManager & FAM, bool IsModulePass)

    Defined at line 3908 of file llvm/lib/Transforms/IPO/Attributor.cpp

  • bool canWidenShuffleElements (ArrayRef<int> Mask, SmallVectorImpl<int> & WidenedMask)

    Helper function to test whether a shuffle mask could be

    simplified by widening the elements being shuffled.

    Appends the mask for wider elements in WidenedMask if valid. Otherwise

    leaves it in an unspecified state.

    NOTE: This must handle normal vector shuffle masks and *target* vector

    shuffle masks. The latter have the special property of a '-2' representing

    a zero-ed lane of a vector.

    Defined at line 3911 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool mayUsePostIncMode (const TargetTransformInfo & TTI, LSRUse & LU, const SCEV * S, const Loop * L, ScalarEvolution & SE)

    Return true if the SCEV represents a value that may end up as a

    post-increment operation.

    Defined at line 3912 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void emitGlobalConstantDataSequential (const DataLayout & DL, const ConstantDataSequential * CDS, AsmPrinter & AP, int * AliasList)

    Defined at line 3912 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • bool isNonEqualShl (const Value * V1, const Value * V2, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Return true if V2 == V1

    <

    <

    C, where V1 is known non-zero, C is not 0 and

    the shift is nuw or nsw.

    Defined at line 3919 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * createLogicalOp (IRBuilderBase & Builder, BinaryOps Opc, Value * LHS, Value * RHS, const Twine & Name)

    Defined at line 3922 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Value * foldBitmaskMul (Value * Op0, Value * Op1, InstCombiner::BuilderTy & Builder)

    (A

    &

    N) * C + (A

    &

    M) * C -> (A

    &

    (N + M))

    &

    C

    This also accepts the equivalent select form of (A

    &

    N) * C

    expressions i.e. !(A

    &

    N) ? 0 : N * C)

    Defined at line 3925 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • VPExpressionRecipe * tryToMatchAndCreateExtendedReduction (VPReductionRecipe * Red, VPCostContext & Ctx, VFRange & Range)

    This function tries convert extended in-loop reductions to

    VPExpressionRecipe and clamp the

    if it is beneficial and

    valid. The created recipe must be decomposed to its constituent

    recipes before execution.

    Defined at line 3930 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool isNonEqualPHIs (const PHINode * PN1, const PHINode * PN2, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 3931 of file llvm/lib/Analysis/ValueTracking.cpp

  • SDValue getTruncatedUSUBSAT (EVT DstVT, EVT SrcVT, SDValue LHS, SDValue RHS, SelectionDAG & DAG, const SDLoc & DL)

    Attempt to create a USUBSAT(LHS, RHS) node with DstVT, performing a

    clamp/truncation if necessary.

    Defined at line 3934 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool extractPredSuccWeights (BranchInst * PBI, BranchInst * BI, uint64_t & PredTrueWeight, uint64_t & PredFalseWeight, uint64_t & SuccTrueWeight, uint64_t & SuccFalseWeight)

    Return true if either PBI or BI has branch weight available, and store

    the weights in {Pred|Succ}{True|False}Weight. If one of PBI and BI does

    not have branch weight, use 1:1 as its weight.

    Defined at line 3938 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • template <class ELFT>
    void printRelocHeaderFields (formatted_raw_ostream & OS, unsigned int SType, const typename ELFT::Ehdr & EHeader, uint64_t CrelHdr)

    Defined at line 3941 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void emitGlobalConstantArray (const DataLayout & DL, const ConstantArray * CA, AsmPrinter & AP, const Constant * BaseCV, uint64_t Offset, int * AliasList)

    Defined at line 3955 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • int getJumpTableIndexFromAddr (const MachineInstr & MI)

    Defined at line 3956 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool canWidenShuffleElements (ArrayRef<int> Mask, const APInt & Zeroable, bool V2IsZero, SmallVectorImpl<int> & WidenedMask)

    Defined at line 3961 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • optional shouldFoldCondBranchesToCommonDestination (BranchInst * BI, BranchInst * PBI, const TargetTransformInfo * TTI)

    Determine if the two branches share a common destination and deduce a glue

    that joins the branches' conditions to arrive at the common destination if

    that would be profitable.

    Defined at line 3961 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool isNonEqualSelect (const Value * V1, const Value * V2, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 3962 of file llvm/lib/Analysis/ValueTracking.cpp

  • template <class ELFT>
    bool isRelocationSec (const typename ELFT::Shdr & Sec, const typename ELFT::Ehdr & EHeader)

    Defined at line 3968 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool isImpliedTrueByMatchingCmp (CmpPredicate Pred1, CmpPredicate Pred2)

    Defined at line 3968 of file llvm/lib/IR/Instructions.cpp

  • int getJumpTableIndexFromReg (const MachineRegisterInfo & MRI, Register Reg)

    Defined at line 3969 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool canWidenShuffleElements (ArrayRef<int> Mask)

    Defined at line 3977 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void emitGlobalConstantVector (const DataLayout & DL, const Constant * CV, AsmPrinter & AP, int * AliasList)

    Defined at line 3977 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • Value * foldOrUnsignedUMulOverflowICmp (BinaryOperator & I, InstCombiner::BuilderTy & Builder, const DataLayout & DL)

    Fold Res, Overflow = (umul.with.overflow x c1); (or Overflow (ugt Res c2))

    --> (ugt x (c2/c1)). This code checks whether a multiplication of two

    unsigned numbers (one is a constant) is mathematically greater than a

    second constant.

    Defined at line 3981 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool scaleShuffleElements (ArrayRef<int> Mask, unsigned int NumDstElts, SmallVectorImpl<int> & ScaledMask)

    Attempt to narrow/widen shuffle mask until it matches the target number of

    elements.

    Defined at line 3984 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isNonEqualPointersWithRecursiveGEP (const Value * A, const Value * B, const SimplifyQuery & Q)

    Check to see if A is both a GEP and is the incoming value for a PHI in the

    loop, and B is either a ptr or another GEP. If the PHI has 2 incoming values,

    one of them being the recursive GEP A and the other a ptr at same base and at

    the same/higher offset than B we are only incrementing the pointer further in

    loop if offset of recursive GEP is greater than 0.

    Defined at line 3987 of file llvm/lib/Analysis/ValueTracking.cpp

  • VPExpressionRecipe * tryToMatchAndCreateMulAccumulateReduction (VPReductionRecipe * Red, VPCostContext & Ctx, VFRange & Range)

    This function tries convert extended in-loop reductions to

    VPExpressionRecipe and clamp the

    if it is beneficial

    and valid. The created VPExpressionRecipe must be decomposed to its

    constituent recipes before execution. Patterns of the

    VPExpressionRecipe:

    reduce.add(mul(...)),

    reduce.add(mul(ext(A), ext(B))),

    reduce.add(ext(mul(ext(A), ext(B)))).

    Defined at line 3987 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool isImpliedFalseByMatchingCmp (CmpPredicate Pred1, CmpPredicate Pred2)

    Defined at line 3998 of file llvm/lib/IR/Instructions.cpp

  • AtomicOrdering mapFromLLVMOrdering ( Ordering)

    Defined at line 4000 of file llvm/lib/IR/Core.cpp

  • bool performBranchToCommonDestFolding (BranchInst * BI, BranchInst * PBI, DomTreeUpdater * DTU, MemorySSAUpdater * MSSAU, const TargetTransformInfo * TTI)

    Defined at line 4001 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Value * FoldOrOfSelectSmaxToAbs (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Fold select(X >s 0, 0, -X) | smax(X, 0) --> abs(X)

    select(X

    0, -X, 0) | smax(X, 0) --> abs(X)

    Defined at line 4002 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • bool canScaleShuffleElements (ArrayRef<int> Mask, unsigned int NumDstElts)

    Defined at line 4012 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void emitGlobalConstantStruct (const DataLayout & DL, const ConstantStruct * CS, AsmPrinter & AP, const Constant * BaseCV, uint64_t Offset, int * AliasList)

    Defined at line 4015 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  •  mapToLLVMOrdering (AtomicOrdering Ordering)

    Defined at line 4016 of file llvm/lib/IR/Core.cpp

  • std::optional<std::pair<GZExtLoad *, int64_t>> matchLoadAndBytePosition (Register Reg, unsigned int MemSizeInBits, const MachineRegisterInfo & MRI)

    Helper function for findLoadOffsetsForLoadOrCombine.

    Check if

    is the result of loading a

    wide value,

    and then moving that value into a specific byte offset.

    e.g. x[i]

    <

    <

    24

    Defined at line 4017 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • void growShuffleMask (ArrayRef<int> SrcMask, SmallVectorImpl<int> & DstMask, unsigned int SrcSizeInBits, unsigned int DstSizeInBits)

    Helper to grow the shuffle mask for a larger value type.

    NOTE: This is different to scaleShuffleElements which is a same size type.

    Defined at line 4019 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Function * getFreshReductionFunc (Module & M)

    Defined at line 4022 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • Value * optimizeNaN (CallInst * CI)

    Constant folding nan/nanf/nanl.

    Defined at line 4025 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • Error populateReductionFunction (Function * ReductionFunc, ArrayRef<OpenMPIRBuilder::ReductionInfo> ReductionInfos, int & Builder, ArrayRef<bool> IsByRef, bool IsGPU)

    Defined at line 4031 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • BinOp mapFromLLVMRMWBinOp ( BinOp)

    Defined at line 4032 of file llvm/lib/IR/Core.cpp

  • bool isKnownNonEqualFromContext (const Value * V1, const Value * V2, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 4034 of file llvm/lib/Analysis/ValueTracking.cpp

  • int compareMBBPriority (const MBBPriorityInfo * LHS, const MBBPriorityInfo * RHS)

    C-style comparator that sorts first based on the loop depth of the basic

    block (the unsigned), and then on the MBB number.

    EnableGlobalCopies assumes that the primary sort key is loop depth.

    Defined at line 4035 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • template <class MatchContextClass>
    SDValue foldSubCtlzNot (SDNode * N, SelectionDAG & DAG)

    Refinement of DAG/Type Legalisation (promotion) when CTLZ is used for

    counting leading ones. Broadly, it replaces the substraction with a left

    shift.

    * DAG Legalisation Pattern:

    (sub (ctlz (zeroextend (not Src)))

    BitWidthDiff)

    if BitWidthDiff == BitWidth(Node) - BitWidth(Src)

    -->

    (ctlz_zero_undef (not (shl (anyextend Src)

    BitWidthDiff)))

    * Type Legalisation Pattern:

    (sub (ctlz (and (xor Src XorMask)

    AndMask))

    BitWidthDiff)

    if AndMask has only trailing ones

    and MaskBitWidth(AndMask) == BitWidth(Node) - BitWidthDiff

    and XorMask has more trailing ones than AndMask

    -->

    (ctlz_zero_undef (not (shl Src BitWidthDiff)))

    Defined at line 4036 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool feedsIntoVectorReduction (ShuffleVectorInst * SVI)

    Returns true if this ShuffleVectorInst eventually feeds into a

    vector reduction intrinsic (e.g., vector_reduce_add) by only following

    chains of shuffles and binary operators (in any combination/order).

    The search does not go deeper than the given Depth.

    Defined at line 4040 of file llvm/lib/Transforms/Vectorize/VectorCombine.cpp

  • bool matchFMulByZeroIfResultEqZero (InstCombinerImpl & IC, Value * Cmp0, Value * Cmp1, Value * TrueVal, Value * FalseVal, Instruction & CtxI, bool SelectIsNSZ)

    Defined at line 4043 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • SDValue getConstVector (ArrayRef<int> Values, MVT VT, SelectionDAG & DAG, const SDLoc & dl, bool IsMask)

    Build a vector of constants.

    Use an UNDEF node if MaskElt == -1.

    Split 64-bit constants in the 32-bit mode.

    Defined at line 4043 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * foldICmpUSubSatOrUAddSatWithConstant (CmpPredicate Pred, SaturatingInst * II, const APInt & C, InstCombiner::BuilderTy & Builder)

    Defined at line 4043 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool isLocalCopy (MachineInstr * Copy, const LiveIntervals * LIS)

    Defined at line 4057 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • bool hasAffectedValue (Value * V, SmallPtrSetImpl<Value *> & Affected, unsigned int Depth)

    Check whether the KnownBits of a select arm may be affected by the

    select condition.

    Defined at line 4062 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  •  mapToLLVMRMWBinOp (BinOp BinOp)

    Defined at line 4066 of file llvm/lib/IR/Core.cpp

  • SDValue getConstVector (ArrayRef<APInt> Bits, const APInt & Undefs, MVT VT, SelectionDAG & DAG, const SDLoc & dl)

    Defined at line 4073 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldRemainderIdiom (SDNode * N, SelectionDAG & DAG, const SDLoc & DL)

    Fold sub(x, mul(divrem(x,y)[0], y)) to divrem(x, y)[1]

    Defined at line 4084 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Value * foldSelectIntoAddConstant (SelectInst & SI, InstCombiner::BuilderTy & Builder)

    This transformation enables the possibility of transforming fcmp + sel into

    a fmaxnum/fminnum intrinsic.

    Defined at line 4089 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • bool willGenerateVectors (VPlan & Plan, ElementCount VF, const TargetTransformInfo & TTI)

    Check if any recipe of

    will generate a vector value, which will be

    assigned a vector register.

    Defined at line 4096 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void inferDSOLocal (GlobalValue * GV)

    Defined at line 4097 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • SanitizerMetadata deserializeSanitizerMetadata (unsigned int V)

    Defined at line 4104 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • Value * simplifyFCmpInst (CmpPredicate Pred, Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an FCmpInst, see if we can fold the result.

    If not, this returns null.

    Defined at line 4105 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SDValue getConstVector (ArrayRef<APInt> Bits, MVT VT, SelectionDAG & DAG, const SDLoc & dl)

    Defined at line 4109 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isVectorOp (Instruction & I)

    Return if an instruction's type or any of its operands' types are a vector

    type.

    Defined at line 4116 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • SDValue getZeroVector (MVT VT, const X86Subtarget & Subtarget, SelectionDAG & DAG, const SDLoc & dl)

    Returns a vector of specified type with all zero elements.

    Defined at line 4116 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isTerminalReg (Register DstReg, const MachineInstr & Copy, const MachineRegisterInfo * MRI)

    Check if DstReg is a terminal node.

    I.e., it does not have any affinity other than

    Defined at line 4120 of file llvm/lib/CodeGen/RegisterCoalescer.cpp

  • bool checkForMustTailInVarArgFn (bool IsVarArg, const BasicBlock & BB)

    Returns true if a BasicBlock

    within a variadic function contains a

    variadic musttail call.

    Defined at line 4124 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp

  • Instruction * foldICmpOfCmpIntrinsicWithConstant (CmpPredicate Pred, IntrinsicInst * I, const APInt & C, InstCombiner::BuilderTy & Builder)

    Defined at line 4128 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool isTypeCongruent (Type * L, Type * R)

    Two types are "congruent" if they are identical, or if they are both pointer

    types with different pointee types and the same address space.

    Defined at line 4129 of file llvm/lib/IR/Verifier.cpp

  • bool scevUnconditionallyPropagatesPoisonFromOperands (SCEVTypes Kind)

    Defined at line 4129 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • basic_string getSectionTypeOffsetString (unsigned int Type)

    Print the offset of a particular section from anyone of the ranges:

    [SHT_LOOS, SHT_HIOS], [SHT_LOPROC, SHT_HIPROC], [SHT_LOUSER, SHT_HIUSER].

    If 'Type' does not fall within any of those ranges, then a string is

    returned as '

    <unknown

    >' followed by the type value.

    Defined at line 4134 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • SDValue tryFoldToZero (const SDLoc & DL, const TargetLowering & TLI, EVT VT, SelectionDAG & DAG, bool LegalOperations)

    Since it may not be valid to emit a fold to zero for vector initializers

    check if we can before folding.

    Defined at line 4137 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • AttrBuilder getParameterABIAttributes (LLVMContext & C, unsigned int I, AttributeList Attrs)

    Defined at line 4139 of file llvm/lib/IR/Verifier.cpp

  • basic_string getSectionTypeString (unsigned int Machine, unsigned int Type)

    Defined at line 4144 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • SDValue getSplitVectorSrc (SDValue LHS, SDValue RHS, bool AllowCommute)

    Helper to determine if the ops are all the extracted subvectors come from a

    single source. If we allow commute they don't have to be in order (Lo/Hi).

    Defined at line 4145 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void FindNames (TreePatternNode & P, int & Names, TreePattern * PatternTop)

    Defined at line 4149 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • Value * foldSelectBitTest (SelectInst & Sel, Value * CondVal, Value * TrueVal, Value * FalseVal, InstCombiner::BuilderTy & Builder, const SimplifyQuery & SQ)

    Defined at line 4149 of file llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  • void handleIndirectSymViaGOTPCRel (AsmPrinter & AP, const MCExpr ** ME, const Constant * BaseCst, uint64_t Offset)

    Transform a not absolute MCExpr containing a reference to a GOT

    equivalent global, by a target specific GOT pc relative access to the

    final symbol.

    Defined at line 4155 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • void tryToCreateAbstractReductionRecipe (VPReductionRecipe * Red, VPCostContext & Ctx, VFRange & Range)

    This function tries to create abstract recipes from the reduction recipe for

    following optimizations and cost estimation.

    Defined at line 4160 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void printSectionDescription (formatted_raw_ostream & OS, unsigned int EMachine)

    Defined at line 4163 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • SDValue extractSubVector (SDValue Vec, unsigned int IdxVal, SelectionDAG & DAG, const SDLoc & dl, unsigned int vectorWidth)

    Defined at line 4166 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue fpExtendHelper (SDValue Op, SDValue & Chain, bool IsStrict, EVT VT, SDLoc DL, SelectionDAG & DAG)

    Helper for producing an FP_EXTEND/STRICT_FP_EXTEND of Op.

    Defined at line 4167 of file llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp

  • unsigned int computeNumSignBitsVectorConstant (const Value * V, const APInt & DemandedElts, unsigned int TyBits)

    For vector constants, loop over the elements and find the constant with the

    minimum number of sign bits. Return 0 if the value is not a vector constant

    or if any element was not analyzed; otherwise, return the count for the

    element with the minimum number of sign bits.

    Defined at line 4172 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool impliesPoison (const SCEV * AssumedPoison, const SCEV * S)

    Return true if V is poison given that AssumedPoison is already poison.

    Defined at line 4188 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool hasReplicatorRegion (VPlan & Plan)

    Defined at line 4192 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • unsigned int getPrefixes (int & Operands)

    Defined at line 4198 of file llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp

  • SDValue extract128BitVector (SDValue Vec, unsigned int IdxVal, SelectionDAG & DAG, const SDLoc & dl)

    Generate a DAG to grab 128-bits from a vector > 128 bits. This

    sets things up to match to an AVX VEXTRACTF128 / VEXTRACTI128

    or AVX-512 VEXTRACTF32x4 / VEXTRACTI32x4

    instructions or a simple subregister reference. Idx is an index in the

    128 bits we want. It need not be aligned to a 128-bit boundary. That makes

    lowering EXTRACT_VECTOR_ELT operations easier.

    Defined at line 4205 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue extract256BitVector (SDValue Vec, unsigned int IdxVal, SelectionDAG & DAG, const SDLoc & dl)

    Generate a DAG to grab 256-bits from a 512-bit vector.

    Defined at line 4214 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const char * get_objc2_64bit_class_name (uint64_t pointer_value, uint64_t ReferenceValue, struct DisassembleInfo * info)

    get_objc2_64bit_class_name() is used for disassembly and is passed a pointer

    to an Objective-C class and returns the class name. It is also passed the

    address of the pointer, so when the pointer is zero as it can be in an .o

    file, that is used to look for an external relocation entry with a symbol

    name.

    Defined at line 4218 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue insertSubVector (SDValue Result, SDValue Vec, unsigned int IdxVal, SelectionDAG & DAG, const SDLoc & dl, unsigned int vectorWidth)

    Defined at line 4220 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isHReg (Register Reg)

    Test if the given register is a physical h register.

    Defined at line 4221 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • unsigned int CopyToFromAsymmetricReg (Register DestReg, Register SrcReg, const X86Subtarget & Subtarget)

    Try and copy between VR128/VR64 and GR64 registers.

    Defined at line 4226 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • Value * optimizeModularFormat (CallInst * CI, IRBuilderBase & B)

    Defined at line 4236 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • SDValue insert128BitVector (SDValue Result, SDValue Vec, unsigned int IdxVal, SelectionDAG & DAG, const SDLoc & dl)

    Generate a DAG to put 128-bits into a vector > 128 bits. This

    sets things up to match to an AVX VINSERTF128/VINSERTI128 or

    AVX-512 VINSERTF32x4/VINSERTI32x4 instructions or a

    simple superregister reference. Idx is an index in the 128 bits

    we want. It need not be aligned to a 128-bit boundary. That makes

    lowering INSERT_VECTOR_ELT operations easier.

    Defined at line 4246 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • StoreInst * findUniqueStoreInBlocks (BasicBlock * BB1, BasicBlock * BB2)

    If there is only one store in BB1 and BB2, return it, otherwise return

    nullptr.

    Defined at line 4250 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • SDValue widenSubVector (MVT VT, SDValue Vec, bool ZeroNewElements, const X86Subtarget & Subtarget, SelectionDAG & DAG, const SDLoc & dl)

    Widen a vector to a larger size with the same scalar type, with the new

    elements either zero or undef.

    Defined at line 4254 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * simplifySwitchOnSelectUsingRanges (SwitchInst & SI, SelectInst * Select, bool IsTrueArm)

    Replaces (switch (select cond, X, C)/(select cond, C, X)) with (switch X) if

    we can prove that both (switch C) and (switch X) go to the default when cond

    is false/true.

    Defined at line 4255 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • template <typename Fn>
    void writeFunctionTypeMetadataRecords (BitstreamWriter & Stream, FunctionSummary * FS, Fn GetValueID)

    Write the function type metadata related records that need to appear before

    a function summary entry (whether per-module or combined).

    Defined at line 4259 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • Value * ensureValueAvailableInSuccessor (Value * V, BasicBlock * BB, Value * AlternativeV)

    Defined at line 4267 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • const char * get_objc2_64bit_cfstring_name (uint64_t ReferenceValue, struct DisassembleInfo * info)

    get_objc2_64bit_cfstring_name is used for disassembly and is passed a

    pointer to a cfstring and returns its name or nullptr.

    Defined at line 4269 of file llvm/tools/llvm-objdump/MachODump.cpp

  • ScheduleDAGInstrs * createConvergingSched (MachineSchedContext * C)

    Defined at line 4271 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • SDValue widenSubVector (SDValue Vec, bool ZeroNewElements, const X86Subtarget & Subtarget, SelectionDAG & DAG, const SDLoc & dl, unsigned int WideSizeInBits)

    Widen a vector to a larger size with the same scalar type, with the new

    elements either zero or undef.

    Defined at line 4278 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • VPIRMetadata getCommonMetadata (ArrayRef Recipes)

    Collect common metadata from a group of replicate recipes by intersecting

    metadata from all recipes in the group.

    Defined at line 4284 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • MVT widenMaskVectorType (MVT VT, const X86Subtarget & Subtarget)

    Widen a mask vector type to a minimum of v8i1/v16i1 to allow use of KSHIFT

    and bitcast with integer types.

    Defined at line 4292 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • template <unsigned Opcode>
    SmallVector collectComplementaryPredicatedMemOps (VPlan & Plan, PredicatedScalarEvolution & PSE, const Loop * L)

    Defined at line 4292 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • bool isValidEncoding (int64_t Encoding)

    Defined at line 4298 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • SDValue widenMaskVector (SDValue Vec, bool ZeroNewElements, const X86Subtarget & Subtarget, SelectionDAG & DAG, const SDLoc & dl)

    Widen a mask vector to a minimum of v8i1/v16i1 to allow use of KSHIFT and

    bitcast with integer types.

    Defined at line 4302 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • uint64_t get_objc2_64bit_selref (uint64_t ReferenceValue, struct DisassembleInfo * info)

    get_objc2_64bit_selref() is used for disassembly and is passed a the address

    of a pointer to an Objective-C selector reference when the pointer value is

    zero as in a .o file and is likely to have a external relocation entry with

    who's symbol's n_value is the real pointer to the selector name. If that is

    the case the real pointer to the selector name is returned else 0 is

    returned

    Defined at line 4303 of file llvm/tools/llvm-objdump/MachODump.cpp

  • llvm::CallInst * emitNoUnwindRuntimeCall (int & Builder, FunctionCallee Callee, ArrayRef Args, const llvm::Twine & Name)

    Defined at line 4304 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void updateSubprogramLinkageName (Function * NewFunc, StringRef Name)

    Update the debug information attached to NewFunc to use the clone Name. Note

    this needs to be done for both any existing DISubprogram for the definition,

    as well as any separate declaration DISubprogram.

    Defined at line 4310 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • bool collectConcatOps (SDNode * N, SmallVectorImpl<SDValue> & Ops, SelectionDAG & DAG)

    Helper function to collect subvector ops that are concatenated together,

    either by ISD::CONCAT_VECTORS or a ISD::INSERT_SUBVECTOR series.

    The subvectors in Ops are guaranteed to be the same type.

    Defined at line 4312 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • int computeFPBPAlignmentGap (MachineFunction & MF, const TargetRegisterClass * RC, unsigned int NumSpilledRegs)

    Compute the alignment gap between current SP after spilling FP/BP and the

    next properly aligned stack offset.

    Defined at line 4313 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • bool mergeConditionalStoreToAddress (BasicBlock * PTB, BasicBlock * PFB, BasicBlock * QTB, BasicBlock * QFB, BasicBlock * PostBB, Value * Address, bool InvertPCond, bool InvertQCond, DomTreeUpdater * DTU, const DataLayout & DL, const TargetTransformInfo & TTI)

    Defined at line 4317 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • SectionRef get_section (MachOObjectFile * O, const char * segname, const char * sectname)

    Defined at line 4318 of file llvm/tools/llvm-objdump/MachODump.cpp

  • IntrinsicInst * findInitTrampolineFromAlloca (Value * TrampMem)

    Defined at line 4329 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • void getReferencedTypeIds (FunctionSummary * FS, std::set<GlobalValue::GUID> & ReferencedTypeIds)

    Collect type IDs from type tests used by function.

    Defined at line 4334 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • void walk_pointer_list_64 (const char * listname, SectionRef S, MachOObjectFile * O, struct DisassembleInfo * info, void (*)(uint64_t, struct DisassembleInfo *) func)

    Defined at line 4336 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool ForceArbitraryInstResultType (TreePatternNode & N, TreePattern & TP)

    Given a pattern result with an unresolved type, see if we can find one

    instruction with an unresolved result type. Force this result type to an

    arbitrary element if it's possible types to converge results.

    Defined at line 4338 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • Value * simplifyWithOpsReplaced (Value * V, ArrayRef<std::pair<Value *, Value *>> Ops, const SimplifyQuery & Q, bool AllowRefinement, SmallVectorImpl<Instruction *> * DropFlags, unsigned int MaxRecurse)

    Defined at line 4339 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void writeWholeProgramDevirtResolutionByArg (SmallVector<uint64_t, 64> & NameVals, const std::vector<uint64_t> & args, const WholeProgramDevirtResolution::ByArg & ByArg)

    Defined at line 4360 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • TreePatternNodePtr PromoteXForms (TreePatternNodePtr N)

    Promote xform function to be an explicit node wherever set.

    Defined at line 4366 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • IntrinsicInst * findInitTrampolineFromBB (IntrinsicInst * AdjustTramp, Value * TrampMem)

    Defined at line 4368 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • template <typename InstType>
    VPReplicateRecipe * findRecipeWithMinAlign (ArrayRef Group)

    Find the recipe with minimum alignment in the group.

    Defined at line 4369 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void writeWholeProgramDevirtResolution (SmallVector<uint64_t, 64> & NameVals, StringTableBuilder & StrtabBuilder, uint64_t Id, const WholeProgramDevirtResolution & Wpd)

    Defined at line 4372 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • void maybePrintCallAddrSpace (const Value * Operand, const Instruction * I, raw_ostream & Out)

    Defined at line 4374 of file llvm/lib/IR/AsmWriter.cpp

  • void writeTypeIdSummaryRecord (SmallVector<uint64_t, 64> & NameVals, StringTableBuilder & StrtabBuilder, StringRef Id, const TypeIdSummary & Summary)

    Defined at line 4386 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool isMaskOrZero (const Value * V, bool Not, const SimplifyQuery & Q, unsigned int Depth)

    Returns whether V is a Mask ((X + 1)

    &

    X == 0) or ~Mask (-Pow2OrZero)

    Defined at line 4386 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • IntrinsicInst * findInitTrampoline (Value * Callee)

    Given a call to llvm.adjust.trampoline, find and return the corresponding

    call to llvm.init.trampoline if the call to the trampoline can be optimized

    to a direct call to a function. Otherwise return NULL.

    Defined at line 4389 of file llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp

  • void walk_pointer_list_32 (const char * listname, SectionRef S, MachOObjectFile * O, struct DisassembleInfo * info, void (*)(uint32_t, struct DisassembleInfo *) func)

    Defined at line 4391 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue isUpperSubvectorUndef (SDValue V, const SDLoc & DL, SelectionDAG & DAG)

    Helper to check if

    can be split into subvectors and the upper subvectors

    are all undef. In which case return the lower subvector.

    Defined at line 4396 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void writeTypeIdCompatibleVtableSummaryRecord (SmallVector<uint64_t, 64> & NameVals, StringTableBuilder & StrtabBuilder, StringRef Id, const TypeIdCompatibleVtableInfo & Summary, ValueEnumerator & VE)

    Defined at line 4405 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • unsigned int getLoadStoreOpcodeForFP16 (bool Load, const X86Subtarget & STI)

    Defined at line 4409 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • const SCEV * getAnyExtendConsideringPostIncUses (ArrayRef<PostIncLoopSet> Loops, const SCEV * Expr, Type * ToTy, ScalarEvolution & SE)

    Extend/Truncate

    to

    considering post-inc uses in

    For all PostIncLoopSets in

    first de-normalize

    then

    perform the extension/truncate and normalize again, as the normalized form

    can result in folds that are not valid in the post-inc use contexts. The

    expressions for all PostIncLoopSets must match, otherwise return nullptr.

    Defined at line 4409 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool isFreeToSplitVector (SDValue V, SelectionDAG & DAG)

    Helper to check if we can access all the constituent subvectors without any

    extract ops.

    Defined at line 4417 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • unsigned int getLoadStoreRegOpcode (Register Reg, const TargetRegisterClass * RC, bool IsStackAligned, const X86Subtarget & STI, bool Load)

    Defined at line 4417 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void collectMemProfCallStacks (FunctionSummary * FS, function GetStackIndex, MapVector<CallStackId, llvm::SmallVector<LinearFrameId>> & CallStacks)

    Adds the allocation contexts to the CallStacks map. We simply use the

    size at the time the context was added as the CallStackId. This works because

    when we look up the call stacks later on we process the function summaries

    and their allocation records in the same exact order.

    Defined at line 4422 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • std::pair<SDValue, SDValue> splitVector (SDValue Op, SelectionDAG & DAG, const SDLoc & dl)

    Defined at line 4422 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool canSinkStoreWithNoAliasCheck (ArrayRef StoresToSink, PredicatedScalarEvolution & PSE, const Loop & L, VPTypeAnalysis & TypeInfo)

    Defined at line 4427 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • void print_layout_map (const char * layout_map, uint32_t left)

    Defined at line 4431 of file llvm/tools/llvm-objdump/MachODump.cpp

  • OverflowKind mapOverflowResult (OverflowResult OR)

    Convert ConstantRange OverflowResult into SelectionDAG::OverflowKind.

    Defined at line 4437 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void print_layout_map64 (uint64_t p, struct DisassembleInfo * info)

    Defined at line 4443 of file llvm/tools/llvm-objdump/MachODump.cpp

  • DenseMap writeMemoryProfileRadixTree (MapVector<CallStackId, llvm::SmallVector<LinearFrameId>> && CallStacks, BitstreamWriter & Stream, unsigned int RadixAbbrev)

    Build the radix tree from the accumulated CallStacks, write out the resulting

    linearized radix tree array, and return the map of call stack positions into

    this array for use when writing the allocation records. The returned map is

    indexed by a CallStackId which in this case is implicitly determined by the

    order of function summaries and their allocation infos being written.

    Defined at line 4446 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • SDValue splitVectorOp (SDValue Op, SelectionDAG & DAG, const SDLoc & dl)

    Break an operation into 2 half sized ops and then concatenate the results.

    Defined at line 4453 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void print_layout_map32 (uint32_t p, struct DisassembleInfo * info)

    Defined at line 4454 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isContiguous (const ConstantRange & A, const ConstantRange & B)

    Defined at line 4455 of file llvm/lib/IR/Verifier.cpp

  • void writeFunctionHeapProfileRecords (BitstreamWriter & Stream, FunctionSummary * FS, unsigned int CallsiteAbbrev, unsigned int AllocAbbrev, unsigned int ContextIdAbbvId, bool PerModule, function GetValueID, function GetStackIndex, bool WriteContextSizeInfoIndex, DenseMap<CallStackId, LinearCallStackId> & CallStackPos, CallStackId & CallStackCount)

    Defined at line 4462 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • void print_relative_method_list (uint32_t structSizeAndFlags, uint32_t structCount, uint64_t p, struct DisassembleInfo * info, const char * indent, uint32_t pointerBits)

    Defined at line 4465 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue simplifySetCCWithCTPOP (const TargetLowering & TLI, EVT VT, SDValue N0, const APInt & C1, CondCode Cond, const SDLoc & dl, SelectionDAG & DAG)

    Defined at line 4466 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • void PrintParentLoopComment (raw_ostream & OS, const MachineLoop * Loop, unsigned int FunctionNumber)

    PrintParentLoopComment - Print comments about parent loops of this one.

    Defined at line 4467 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • Value * upgradeAArch64IntrinsicCall (StringRef Name, CallBase * CI, Function * F, IRBuilder<> & Builder)

    Defined at line 4467 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool isFPBPAccess (const MachineInstr & MI, Register FP, Register BP, const TargetRegisterInfo * TRI, bool & AccessFP, bool & AccessBP)

    Defined at line 4475 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • SDValue splitVectorIntUnary (SDValue Op, SelectionDAG & DAG, const SDLoc & dl)

    Break an unary integer operation into 2 half sized ops and then

    concatenate the result back.

    Defined at line 4478 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void PrintChildLoopComment (raw_ostream & OS, const MachineLoop * Loop, unsigned int FunctionNumber)

    PrintChildLoopComment - Print comments about child loops within

    the loop for this basic block, with nesting.

    Defined at line 4479 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • bool mergeConditionalStores (BranchInst * PBI, BranchInst * QBI, DomTreeUpdater * DTU, const DataLayout & DL, const TargetTransformInfo & TTI)

    Defined at line 4479 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void emitBasicBlockLoopComments (const MachineBasicBlock & MBB, const MachineLoopInfo * LI, const AsmPrinter & AP)

    emitBasicBlockLoopComments - Pretty-print comments for basic blocks.

    Defined at line 4492 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • Value * foldICmpWithLowBitMaskedVal (CmpPredicate Pred, Value * Op0, Value * Op1, const SimplifyQuery & Q, InstCombiner & IC)

    Some comparisons can be simplified.

    In this case, we are looking for comparisons that look like

    a check for a lossy truncation.

    Folds:

    icmp SrcPred (x

    &

    Mask), x to icmp DstPred x, Mask

    icmp SrcPred (x

    &

    ~Mask), ~Mask to icmp DstPred x, ~Mask

    icmp eq/ne (x

    &

    ~Mask), 0 to icmp DstPred x, Mask

    icmp eq/ne (~x | Mask), -1 to icmp DstPred x, Mask

    Where Mask is some pattern that produces all-ones in low bits:

    (-1 >> y)

    ((-1

    <

    <

    y) >> y)

    <

    - non-canonical, has extra uses

    ~(-1

    <

    <

    y)

    ((1

    <

    <

    y) + (-1))

    <

    - non-canonical, has extra uses

    The Mask can be a constant, too.

    For some predicates, the operands are commutative.

    For others, x can only be on a specific side.

    Defined at line 4493 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • SDValue splitVectorIntBinary (SDValue Op, SelectionDAG & DAG, const SDLoc & dl)

    Break a binary integer operation into 2 half sized ops and then

    concatenate the result back.

    Defined at line 4494 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isInvoke (const MachineInstr & MI, bool InsideEHLabels)

    Invoke instruction has been lowered to normal function call. We try to figure

    out if MI comes from Invoke.

    Do we have any better method?

    Defined at line 4495 of file llvm/lib/Target/X86/X86FrameLowering.cpp

  • Value * foldFrexpOfSelect (ExtractValueInst & EV, IntrinsicInst * FrexpCall, SelectInst * SelectInst, InstCombiner::BuilderTy & Builder)

    Defined at line 4498 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • template <typename F>
    SDValue SplitOpsAndApply (SelectionDAG & DAG, const X86Subtarget & Subtarget, const SDLoc & DL, EVT VT, ArrayRef<SDValue> Ops, F Builder, bool CheckBWI, bool AllowAVX512)

    Helper for splitting operands of an operation to legal target size and

    apply a function on each part.

    Useful for operations that are available on SSE2 in 128-bit, on AVX2 in

    256-bit and on AVX512BW in 512-bit. The argument VT is the type used for

    deciding if/how to split Ops. Ops elements do *not* have to be of type VT.

    The argument Builder is a function that will be applied on each split part:

    SDValue Builder(SelectionDAG

    &G

    , SDLoc, ArrayRef

    <SDValue

    >)

    Defined at line 4512 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void collectModes (int & Modes, const TreePatternNode & N)

    Defined at line 4520 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • Value * upgradeARMIntrinsicCall (StringRef Name, CallBase * CI, Function * F, IRBuilder<> & Builder)

    Defined at line 4524 of file llvm/lib/IR/AutoUpgrade.cpp

  • SDValue foldSetCCWithRotate (EVT VT, SDValue N0, SDValue N1, CondCode Cond, const SDLoc & dl, SelectionDAG & DAG)

    Defined at line 4540 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • Value * simplifySelectBitTest (Value * TrueVal, Value * FalseVal, Value * X, const APInt * Y, bool TrueWhenUnset)

    Try to simplify a select instruction when its condition operand is an

    integer comparison where one operand of the compare is a constant.

    Defined at line 4547 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void print_method_list64_t (uint64_t p, struct DisassembleInfo * info, const char * indent)

    Defined at line 4547 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue getAVX512Node (unsigned int Opcode, const SDLoc & DL, MVT VT, ArrayRef<SDValue> Ops, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Helper function that extends a non-512-bit vector op to 512-bits on non-VLX

    targets.

    Defined at line 4555 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * foldXorToXor (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    A ^ B can be specified using other logic ops in a variety of patterns. We

    can fold these early and efficiently by morphing an existing instruction.

    Defined at line 4577 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • Type * stripAggregateTypeWrapping (const DataLayout & DL, Type * Ty)

    Strip aggregate type wrapping.

    This removes no-op aggregate types wrapping an underlying type. It will

    strip as many layers of types as it can without changing either the type

    size or the allocated size.

    Defined at line 4580 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • SDValue foldSetCCWithFunnelShift (EVT VT, SDValue N0, SDValue N1, CondCode Cond, const SDLoc & dl, SelectionDAG & DAG)

    Defined at line 4583 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • Value * simplifyCmpSelOfMaxMin (Value * CmpLHS, Value * CmpRHS, CmpPredicate Pred, Value * TVal, Value * FVal)

    Defined at line 4588 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool tryWidenCondBranchToCondBranch (BranchInst * PBI, BranchInst * BI, DomTreeUpdater * DTU)

    If the previous block ended with a widenable branch, determine if reusing

    the target block is profitable and legal. This will have the effect of

    "widening" PBI, but doesn't require us to reason about hosting safety.

    Defined at line 4591 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void FindDepVarsOf (TreePatternNode & N, int & DepMap)

    Defined at line 4610 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • Value * upgradeAMDGCNIntrinsicCall (StringRef Name, CallBase * CI, Function * F, IRBuilder<> & Builder)

    These are expected to have the arguments:

    atomic.intrin (ptr, rmw_value, ordering, scope, isVolatile)

    Except for int_amdgcn_ds_fadd_v2bf16 which only has (ptr, rmw_value).

    Defined at line 4614 of file llvm/lib/IR/AutoUpgrade.cpp

  • Type * getTypePartition (const DataLayout & DL, Type * Ty, uint64_t Offset, uint64_t Size)

    Try to find a partition of the aggregate type passed in for a given

    offset and size.

    This recurses through the aggregate type and tries to compute a subtype

    based on the offset and size. When the offset and size span a sub-section

    of an array, it will even compute a new array type for that sub-section,

    and the same for structs.

    Note that this routine is very strict and tries to find a partition of the

    type which produces the *exact* right offset and size. It is not forgiving

    when the size or offset cause either end of type-based partition to be off.

    Also, this is a best-effort routine. It is reasonable to give up and not

    return a type if necessary.

    Defined at line 4618 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • SDValue insert1BitVector (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Insert i1-subvector to i1-vector.

    Defined at line 4619 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void FindDepVars (TreePatternNode & N, int & DepVars)

    Find dependent variables within child patterns

    Defined at line 4621 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • Value * foldICmpWithTruncSignExtendedVal (ICmpInst & I, InstCombiner::BuilderTy & Builder)

    Some comparisons can be simplified.

    In this case, we are looking for comparisons that look like

    a check for a lossy signed truncation.

    Folds: (MaskedBits is a constant.)

    ((%x

    <

    <

    MaskedBits) a>> MaskedBits) SrcPred %x

    Into:

    (add %x, (1

    <

    <

    (KeptBits-1))) DstPred (1

    <

    <

    KeptBits)

    Where KeptBits = bitwidth(%x) - MaskedBits

    Defined at line 4622 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • const SCEV * MatchNotExpr (const SCEV * Expr)

    If Expr computes ~A, return A else return nullptr

    Defined at line 4632 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void DumpDepVars (int & DepVars)

    Dump the dependent variable set:

    Defined at line 4632 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool canUseFastMathLibcall (const SDNode * Node)

    Return if we can use the FAST_* variant of a math libcall for the node.

    FIXME: This is just guessing, we probably should have unique specific sets

    flags required per libcall.

    Defined at line 4645 of file llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

  • void CombineChildVariants (TreePatternNodePtr Orig, const int & ChildVariants, int & OutVariants, CodeGenDAGPatterns & CDP, const int & DepVars)

    CombineChildVariants - Given a bunch of permutations of each child of the

    'operator' node, put them together in all possible ways.

    Defined at line 4647 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void print_method_list32_t (uint64_t p, struct DisassembleInfo * info, const char * indent)

    Defined at line 4647 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool SimplifyCondBranchToCondBranch (BranchInst * PBI, BranchInst * BI, DomTreeUpdater * DTU, const DataLayout & DL, const TargetTransformInfo & TTI)

    If we have a conditional branch as a predecessor of another block,

    this function tries to simplify it. We know

    that PBI and BI are both conditional branches, and BI is in one of the

    successor blocks of PBI - PBI branches to BI.

    Defined at line 4648 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool MightBeFoldableInst (Instruction * I)

    This is a little filter, which returns true if an addressing computation

    involving I might be folded into a load/store accessing it.

    This doesn't need to be perfect, but needs to accept at least

    the set of instructions that MatchOperationAddr can.

    Defined at line 4656 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • const MDNode * getRangeMetadata (const Instruction & I)

    Defined at line 4658 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • Value * simplifySelectWithBitTest (Value * CondVal, Value * TrueVal, Value * FalseVal)

    An alternative way to test if a bit is set or not.

    uses e.g. sgt/slt or trunc instead of eq/ne.

    Defined at line 4662 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • std::optional<ConstantRange> getRange (const Instruction & I)

    Defined at line 4662 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • FPClassTest getNoFPClass (const Instruction & I)

    Defined at line 4671 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • bool isCatchAll (EHPersonality Personality, Constant * TypeInfo)

    Return 'true' if the given typeinfo will match anything.

    Defined at line 4671 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • Value * simplifySelectWithEquivalence (ArrayRef<std::pair<Value *, Value *>> Replacements, Value * TrueVal, Value * FalseVal, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Try to simplify a select instruction when its condition operand is an

    integer equality or floating-point equivalence comparison.

    Defined at line 4673 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isPromotedInstructionLegal (const TargetLowering & TLI, const DataLayout & DL, Value * Val)

    Check whether or not

    is a legal instruction for

    Defined at line 4687 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • ScheduleDAGInstrs * createILPMaxScheduler (MachineSchedContext * C)

    Defined at line 4688 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • ScheduleDAGInstrs * createILPMinScheduler (MachineSchedContext * C)

    Defined at line 4691 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • Value * foldShiftIntoShiftInAnotherHandOfAndInICmp (ICmpInst & I, SimplifyQuery SQ, InstCombiner::BuilderTy & Builder)

    Given pattern:

    icmp eq/ne (and ((x shift Q), (y oppositeshift K))), 0

    we should move shifts to the same hand of 'and', i.e. rewrite as

    icmp eq/ne (and (x shift (Q+K)), y), 0 iff (Q+K) u

    <

    bitwidth(x)

    We are only interested in opposite logical shifts here.

    One of the shifts can be truncated.

    If we can, we want to end up creating 'lshr' shift.

    Defined at line 4696 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • Value * simplifySelectWithICmpCond (Value * CondVal, Value * TrueVal, Value * FalseVal, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Try to simplify a select instruction when its condition operand is an

    integer comparison.

    Defined at line 4698 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool shorter_filter (const Value * LHS, const Value * RHS)

    Defined at line 4700 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • MDNode * unwrapMAVOp (CallBase * CI, unsigned int Op)

    Helper to unwrap intrinsic call MetadataAsValue operands. Return as a

    plain MDNode, as it's the verifier's job to check these are the correct

    types later.

    Defined at line 4709 of file llvm/lib/IR/AutoUpgrade.cpp

  • void CombineChildVariants (TreePatternNodePtr Orig, const int & LHS, const int & RHS, int & OutVariants, CodeGenDAGPatterns & CDP, const int & DepVars)

    CombineChildVariants - A helper function for binary operators.

    Defined at line 4715 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • bool print_method_list (uint32_t p, struct DisassembleInfo * info)

    Defined at line 4715 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Metadata * unwrapMAVMetadataOp (CallBase * CI, unsigned int Op)

    Helper to unwrap Metadata MetadataAsValue operands, such as the Value field.

    Defined at line 4721 of file llvm/lib/IR/AutoUpgrade.cpp

  • unsigned int getStoreRegOpcode (Register SrcReg, const TargetRegisterClass * RC, bool IsStackAligned, const X86Subtarget & STI)

    Defined at line 4724 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void GatherChildrenOfAssociativeOpcode (TreePatternNodePtr N, int & Children)

    Defined at line 4727 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • MDNode * getDebugLocSafe (const Instruction * I)

    Defined at line 4728 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool outputDenormalIsIEEEOrPosZero (const Function & F, const Type * Ty)

    Defined at line 4728 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * getParentPad (Value * EHPad)

    Defined at line 4728 of file llvm/lib/IR/Verifier.cpp

  • basic_string printPhdrFlags (unsigned int Flag)

    Defined at line 4728 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • unsigned int getLoadRegOpcode (Register DestReg, const TargetRegisterClass * RC, bool IsStackAligned, const X86Subtarget & STI)

    Defined at line 4731 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool isAMXOpcode (unsigned int Opc)

    Defined at line 4737 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • template <class ELFT>
    bool checkTLSSections (const typename ELFT::Phdr & Phdr, const typename ELFT::Shdr & Sec)

    Defined at line 4737 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void upgradeDbgIntrinsicToDbgRecord (StringRef Name, CallBase * CI)

    Convert debug intrinsic calls to non-instruction debug records.

    - Final part of the intrinsic name, e.g. 'value' in llvm.dbg.value.

    - The debug intrinsic call.

    Defined at line 4737 of file llvm/lib/IR/AutoUpgrade.cpp

  • template <class ELFT>
    bool checkPTDynamic (const typename ELFT::Phdr & Phdr, const typename ELFT::Shdr & Sec)

    Defined at line 4755 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void GenerateVariantsOf (TreePatternNodePtr N, int & OutVariants, CodeGenDAGPatterns & CDP, const int & DepVars)

    GenerateVariantsOf - Given a pattern N, generate all permutations we can of

    the (potentially recursive) pattern by using algebraic laws.

    Defined at line 4755 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp

  • void computeKnownFPClassFromCond (const Value * V, Value * Cond, bool CondIsTrue, const Instruction * CxtI, KnownFPClass & KnownFromContext, unsigned int Depth)

    Defined at line 4773 of file llvm/lib/Analysis/ValueTracking.cpp

  • Instruction * visitMaskedMerge (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    If we have a masked merge, in the canonical form of:

    (assuming that A only has one use.)

    | A | |B|

    ((x ^ y)

    &

    M) ^ y

    | D |

    * If M is inverted:

    | D |

    ((x ^ y)

    &

    ~M) ^ y

    We can canonicalize by swapping the final xor operand

    to eliminate the 'not' of the mask.

    ((x ^ y)

    &

    M) ^ x

    * If M is a constant, and D has one use, we transform to 'and' / 'or' ops

    because that shortens the dependency chain and improves analysis:

    (x

    &

    M) | (y

    &

    ~M)

    Defined at line 4777 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • ScheduleDAGInstrs * createInstructionShuffler (MachineSchedContext * C)

    Defined at line 4780 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • bool canNarrowLoad (VPWidenRecipe * WideMember0, unsigned int OpIdx, VPValue * OpV, unsigned int Idx)

    Returns true if

    is VPWidenLoadRecipe or VPInterleaveRecipe that can be

    converted to a narrower recipe.

    is used by a wide recipe that feeds a

    store interleave group at index

    is the recipe feeding

    the same interleave group at index 0. A VPWidenLoadRecipe can be narrowed to

    an index-independent load if it feeds all wide ops at all indices (

    must be the operand at index

    for both the recipe at lane 0,

    A VPInterleaveRecipe can be narrowed to a wide load, if

    is defined at

    of a load interleave group.

    Defined at line 4782 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • SDValue concatSubVectors (SDValue V1, SDValue V2, SelectionDAG & DAG, const SDLoc & dl)

    Defined at line 4784 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void print_protocol_list64_t (uint64_t p, struct DisassembleInfo * info)

    Defined at line 4787 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isConsecutiveInterleaveGroup (VPInterleaveRecipe * InterleaveR, ElementCount VF, VPTypeAnalysis & TypeInfo, TypeSize VectorRegWidth)

    Returns true if

    is a full interleave group with factor and number of

    members both equal to

    The interleave group must also access the full

    vector width

    Defined at line 4798 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • SDValue getOnesVector (EVT VT, SelectionDAG & DAG, const SDLoc & dl)

    Returns a vector of specified type with all bits set.

    Always build ones vectors as

    <

    4 x i32>,

    <

    8 x i32> or

    <

    16 x i32>.

    Then bitcast to their original type, ensuring they get CSE'd.

    Defined at line 4799 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getEXTEND_VECTOR_INREG (unsigned int Opcode, const SDLoc & DL, EVT VT, SDValue In, SelectionDAG & DAG)

    Defined at line 4807 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * foldNotXor (BinaryOperator & I, InstCombiner::BuilderTy & Builder)

    Defined at line 4809 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • Value * simplifySelectWithFCmp (Value * Cond, Value * T, Value * F, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Try to simplify a select instruction when its condition operand is a

    floating-point comparison.

    Defined at line 4816 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • KnownFPClass computeKnownFPClassFromContext (const Value * V, const SimplifyQuery & Q)

    Defined at line 4819 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isAlreadyNarrow (VPValue * VPV)

    Returns true if

    is a narrow VPValue.

    Defined at line 4832 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • VPValue * narrowInterleaveGroupOp (VPValue * V, SmallPtrSetImpl<VPValue *> & NarrowedOps)

    Convert a wide recipe defining a VPValue

    feeding an interleave group to

    a narrow variant.

    Defined at line 4841 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • Instruction * canonicalizeAbs (BinaryOperator & Xor, InstCombiner::BuilderTy & Builder)

    Canonicalize a shifty way to code absolute value to the more common pattern

    that uses negation and select.

    Defined at line 4843 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • SDValue getBitSelect (const SDLoc & DL, MVT VT, SDValue LHS, SDValue RHS, SDValue Mask, SelectionDAG & DAG)

    Create OR(AND(LHS,MASK),AND(RHS,~MASK)) bit select pattern

    Defined at line 4848 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool canFreelyInvert (InstCombiner & IC, Value * Op, Instruction * IgnoredUser)

    Defined at line 4875 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void computeKnownFPClass (const Value * V, KnownFPClass & Known, FPClassTest InterestedClasses, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 4876 of file llvm/lib/Analysis/ValueTracking.cpp

  • Value * freelyInvert (InstCombinerImpl & IC, Value * Op, Instruction * IgnoredUser)

    Defined at line 4882 of file llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  • void computeKnownFPClassForFPTrunc (const Operator * Op, const APInt & DemandedElts, FPClassTest InterestedClasses, KnownFPClass & Known, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 4885 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool sortIntervals (const ResourceSegments::IntervalTy & A, const ResourceSegments::IntervalTy & B)

    Sort predicate for the intervals stored in an instance of

    ResourceSegments. Intervals are always disjoint (no intersection

    for any pairs of intervals), therefore we can sort the totality of

    the intervals by looking only at the left boundary.

    Defined at line 4886 of file llvm/lib/CodeGen/MachineScheduler.cpp

  • SDValue getVectorShuffle (SelectionDAG & DAG, EVT VT, const SDLoc & dl, SDValue V1, SDValue V2, ArrayRef<int> Mask)

    Attempt to constant fold, else just create a VECTOR_SHUFFLE.

    Defined at line 4887 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void PushDefUseChildren (Instruction * I, SmallVectorImpl<Instruction *> & Worklist, SmallPtrSetImpl<Instruction *> & Visited)

    Push users of the given Instruction onto the given Worklist.

    Defined at line 4892 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool isSelectWithIdenticalPHI (PHINode & PN, PHINode & IdenticalPN)

    Look for the following pattern and simplify %to_fold to %identicalPhi.

    Here %phi, %to_fold and %phi.next perform the same functionality as

    %identicalPhi and hence the select instruction %to_fold can be folded

    into %identicalPhi.

    BB1:

    %identicalPhi = phi [ X, %BB0 ], [ %identicalPhi.next, %BB1 ]

    %phi = phi [ X, %BB0 ], [ %phi.next, %BB1 ]

    ...

    %identicalPhi.next = select %cmp, %val, %identicalPhi

    (or select %cmp, %identicalPhi, %val)

    %to_fold = select %cmp2, %identicalPhi, %phi

    %phi.next = select %cmp, %val, %to_fold

    (or select %cmp, %to_fold, %val)

    Prove that %phi and %identicalPhi are the same by induction:

    Base case: Both %phi and %identicalPhi are equal on entry to the loop.

    Inductive case:

    Suppose %phi and %identicalPhi are equal at iteration i.

    We look at their values at iteration i+1 which are %phi.next and

    %identicalPhi.next. They would have become different only when %cmp is

    false and the corresponding values %to_fold and %identicalPhi differ

    (similar reason for the other "or" case in the bracket).

    The only condition when %to_fold and %identicalPh could differ is when %cmp2

    is false and %to_fold is %phi, which contradicts our inductive hypothesis

    that %phi and %identicalPhi are equal. Thus %phi and %identicalPhi are

    always equal at iteration i+1.

    Defined at line 4893 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • FunctionCallee getKmpcDistForStaticInitForType (Type * Ty, Module & M, OpenMPIRBuilder & OMPBuilder)

    Returns an LLVM function to call for initializing loop bounds using OpenMP

    static scheduling for composite `distribute parallel for` depending on

    `type`. Only i32 and i64 are supported by the runtime. Always interpret

    integers as unsigned similarly to CanonicalLoopInfo.

    Defined at line 4896 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • unsigned int getVPTESTMOpc (MVT TestVT, bool IsTestN, bool FoldedLoad, bool FoldedBCast, bool Masked)

    Defined at line 4899 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

  • SDValue getUnpackl (SelectionDAG & DAG, const SDLoc & dl, EVT VT, SDValue V1, SDValue V2)

    Returns a vector_shuffle node for an unpackl operation.

    Defined at line 4908 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • FunctionCallee getKmpcForStaticInitForType (Type * Ty, Module & M, OpenMPIRBuilder & OMPBuilder)

    Returns an LLVM function to call for initializing loop bounds using OpenMP

    static scheduling depending on `type`. Only i32 and i64 are supported by the

    runtime. Always interpret integers as unsigned similarly to

    CanonicalLoopInfo.

    Defined at line 4913 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • SDValue getUnpackh (SelectionDAG & DAG, const SDLoc & dl, EVT VT, SDValue V1, SDValue V2)

    Returns a vector_shuffle node for an unpackh operation.

    Defined at line 4916 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void print_protocol_list32_t (uint32_t p, struct DisassembleInfo * info)

    Defined at line 4916 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue getPack (SelectionDAG & DAG, const X86Subtarget & Subtarget, const SDLoc & dl, MVT VT, SDValue LHS, SDValue RHS, bool PackHiHalf)

    Returns a node that packs the LHS + RHS nodes together at half width.

    May return X86ISD::PACKSS/PACKUS, packing the top/bottom half.

    TODO: Add subvector splitting if/when we have a need for it.

    Defined at line 4926 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Register clampVectorIndex (MachineIRBuilder & B, Register IdxReg, LLT VecTy)

    Defined at line 4931 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • Instruction * foldICmpXNegX (ICmpInst & I, InstCombiner::BuilderTy & Builder)

    Defined at line 4938 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • template <class ELFT>
    size_t getMaxDynamicTagSize (const ELFFile<ELFT> & Obj, typename ELFT::DynRange Tags)

    Defined at line 4959 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • Instruction * foldICmpAndXX (ICmpInst & I, const SimplifyQuery & Q, InstCombinerImpl & IC)

    Defined at line 4970 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool getUniformBase (const Value * Ptr, SDValue & Base, SDValue & Index, SDValue & Scale, SelectionDAGBuilder * SDB, const BasicBlock * CurBB, uint64_t ElemSize)

    Get a uniform base for the Gather/Scatter intrinsic.

    The first argument of the Gather/Scatter intrinsic is a vector of pointers.

    We try to represent it as a base pointer + vector of indices.

    Usually, the vector of pointers comes from a 'getelementptr' instruction.

    The first operand of the GEP may be a single pointer or a vector of pointers

    Example:

    %gep.ptr = getelementptr i32,

    <

    8 x i32*> %vptr,

    <

    8 x i32> %ind

    or

    %gep.ptr = getelementptr i32, i32* %ptr,

    <

    8 x i32> %ind

    %res = call

    <

    8 x i32>

    .masked.gather.v8i32(

    <

    8 x i32*> %gep.ptr, ..

    When the first GEP operand is a single pointer - it is the uniform base we

    are looking for. If first operand of the GEP is a splat vector - we

    extract the splat value and use it as a uniform base.

    In all other cases the function returns 'false'.

    Defined at line 4973 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • bool hasSameNumEltsOnAllVectorOperands (GenericMachineInstr & MI, MachineRegisterInfo & MRI, std::initializer_list<unsigned int> NonVecOpIndices)

    Check that all vector operands have same number of elements. Other operands

    should be listed in NonVecOp.

    Defined at line 4981 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • bool isDivRemLibcallAvailable (SDNode * Node, bool isSigned, const TargetLowering & TLI)

    Return true if divmod libcall is available.

    Defined at line 4988 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void print_indent (uint32_t indent)

    Defined at line 4992 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue getShuffleVectorZeroOrUndef (SDValue V2, int Idx, bool IsZero, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Return a vector_shuffle of the specified vector of zero or undef vector.

    This produces a shuffle where the low element of V2 is swizzled into the

    zero/undef vector, landing at element Idx.

    This produces a shuffle mask like 4,1,2,3 (idx=0) or 0,1,2,4 (idx=3).

    Defined at line 4993 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isDefConvertible (const MachineInstr & MI, bool & NoSignFlag, bool & ClearsOverflowFlag)

    Check whether the definition can be converted

    to remove a comparison against zero.

    Defined at line 4998 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool print_method_description_list (uint32_t p, uint32_t indent, struct DisassembleInfo * info)

    Defined at line 5005 of file llvm/tools/llvm-objdump/MachODump.cpp

  • ConstantPoolSDNode * getTargetConstantPoolFromBasePtr (SDValue Ptr)

    Defined at line 5008 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const Constant * getTargetConstantFromBasePtr (SDValue Ptr)

    TODO: Add support for non-zero offsets.

    Defined at line 5016 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void makeDstOps (SmallVectorImpl<DstOp> & DstOps, LLT Ty, unsigned int NumElts)

    Fill

    with DstOps that have same number of elements combined as

    the Ty. These DstOps have either scalar type when

    = 1 or are

    vectors with

    elements. When Ty.getNumElements() is not multiple

    of

    last DstOp (leftover) has fewer then

    elements.

    Defined at line 5019 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • const Constant * getTargetConstantFromNode (LoadSDNode * Load)

    Defined at line 5023 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const Constant * getTargetConstantFromNode (SDValue Op)

    Defined at line 5029 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * foldICmpOrXX (ICmpInst & I, const SimplifyQuery & Q, InstCombinerImpl & IC)

    Defined at line 5032 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void broadcastSrcOp (SmallVectorImpl<SrcOp> & Ops, unsigned int N, MachineOperand & Op)

    Operand

    is used on

    sub-instructions. Fill

    with

    SrcOps

    made from

    depending on operand type.

    Defined at line 5041 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • void applyParallelAccessesMetadata (CanonicalLoopInfo * CLI, LLVMContext & Ctx, Loop * Loop, LoopInfo & LoopInfo, int & LoopMDList)

    Defined at line 5050 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool getTargetConstantBitsFromNode (SDValue Op, unsigned int EltSizeInBits, APInt & UndefElts, SmallVectorImpl<APInt> & EltBits, bool AllowWholeUndefs, bool AllowPartialUndefs)

    Extract raw constant bits from constant pools.

    Defined at line 5051 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • VPValue * tryToComputeEndValueForInduction (VPWidenInductionRecipe * WideIV, VPBuilder & VectorPHBuilder, VPTypeAnalysis & TypeInfo, VPValue * VectorTC)

    Compute and return the end value for

    unless it is truncated. If

    the induction recipe is not canonical, creates a VPDerivedIVRecipe to

    compute the end value of the induction.

    Defined at line 5055 of file llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

  • Instruction * foldICmpXorXX (ICmpInst & I, const SimplifyQuery & Q, InstCombinerImpl & IC)

    Defined at line 5067 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • SDValue simplifyDivRem (SDNode * N, SelectionDAG & DAG)

    Defined at line 5075 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool print_protocol (uint32_t p, uint32_t indent, struct DisassembleInfo * info)

    Defined at line 5075 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isMultipleOf (Value * X, const APInt & C, const SimplifyQuery & Q)

    Return true if X is a multiple of C.

    TODO: Handle non-power-of-2 factors.

    Defined at line 5113 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void LLVMInitializeX86AsmParser ()

    Force static initialization.

    Defined at line 5118 of file llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp

  • void LLVMParseCommandLineOptions (int argc, const char *const * argv, const char * Overview)

    This function parses the given arguments using the LLVM command line parser.

    Note that the only stable thing about this function is its signature; you

    cannot rely on any particular set of command line arguments being interpreted

    the same way across LLVM versions.

    Defined at line 2868 of file llvm/lib/Support/CommandLine.cpp

  • Value * simplifyICmpInst (CmpPredicate Predicate, Value * LHS, Value * RHS, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given operands for an ICmpInst, see if we can fold the result.

    If not, this returns null.

    Defined at line 3790 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * simplifyCastInst (unsigned int , Value * , Type * , const SimplifyQuery & , unsigned int )

    Defined at line 5503 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * simplifyGEPInst (Type * , Value * , ArrayRef , GEPNoWrapFlags , const SimplifyQuery & , unsigned int )

    Given operands for an GetElementPtrInst, see if we can fold the result.

    If not, this returns null.

    Defined at line 5140 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * simplifySelectInst (Value * , Value * , Value * , const SimplifyQuery & , unsigned int )

    Given operands for a SelectInst, see if we can fold the result.

    If not, this returns null.

    Defined at line 4949 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void stripNonValidData (Module & M)

    The IR fed into RewriteStatepointsForGC may have had attributes and

    metadata implying dereferenceability that are no longer valid/correct after

    RewriteStatepointsForGC has run. This is because semantically, after

    RewriteStatepointsForGC runs, all calls to gc.statepoint "free" the entire

    heap. stripNonValidData (conservatively) restores

    correctness by erasing all attributes in the module that externally imply

    dereferenceability. Similar reasoning also applies to the noalias

    attributes and metadata. gc.statepoint can touch the entire heap including

    noalias objects.

    Apart from attributes and metadata, we also remove instructions that imply

    constant physical memory: llvm.invariant.start.

    Defined at line 3016 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • int findGCStrategy (Function & F)

    Find the GC strategy for a function, or null if it doesn't have one.

    Defined at line 2996 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool shouldRewriteStatepointsIn (Function & F)

    Returns true if this function should be rewritten by this pass. The main

    point of this function is as an extension point for custom logic.

    Defined at line 3005 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool inSubLoop (BasicBlock * BB, Loop * CurLoop, LoopInfo * LI)

    Little predicate that returns true if the specified basic block is in

    a subloop of the current one, not the current one itself.

    Defined at line 2979 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • bool hoistArithmetics (Instruction & I, Loop & L, ICFLoopSafetyInfo & SafetyInfo, MemorySSAUpdater & MSSAU, AssumptionCache * AC, DominatorTree * DT)

    Aggregates various functions for hoisting computations out of loop.

    Defined at line 2930 of file llvm/lib/Transforms/Scalar/LICM.cpp

  • void computeLiveInValues (DominatorTree & DT, Function & F, GCPtrLivenessData & Data, GCStrategy * GC)

    Compute the live-in set for every basic block in the function

    Defined at line 3277 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void findLiveSetAtInst (Instruction * inst, GCPtrLivenessData & Data, int & out, GCStrategy * GC)

    Given results from the dataflow liveness computation, find the set of live

    Values at a particular instruction.

    Defined at line 3344 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • bool isKnownNonZero (const Value * V, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Return true if the given value is known to be non-zero when defined. For

    vectors, return true if every demanded element is known to be non-zero when

    defined. For pointers, if the context instruction and dominator tree are

    specified, perform context-sensitive analysis and return true if the

    pointer couldn't possibly be null at the specified instruction.

    Supports values with integer or pointer type and vectors of integers.

    Defined at line 3646 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isKnownNonEqual (const Value * V1, const Value * V2, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Return true if it is known that V1 != V2.

    Defined at line 4092 of file llvm/lib/Analysis/ValueTracking.cpp

  • unsigned int ComputeNumSignBits (const Value * V, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 4199 of file llvm/lib/Analysis/ValueTracking.cpp

  • Error addSelfRelocations (LinkGraph & G)

    Defined at line 2748 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  • void recomputeLiveInValues (GCPtrLivenessData & RevisedLivenessData, CallBase * Call, PartiallyConstructedSafepointRecord & result, int & PointerToBase, GCStrategy * GC)

    Given an updated version of the dataflow liveness results, update the

    liveset and base pointer maps for the call site CS.

    Defined at line 3362 of file llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  • void initCommonOptions ()

    Defined at line 2683 of file llvm/lib/Support/CommandLine.cpp

  • void writeAsOperandInternal (raw_ostream & Out, const Value * V, AsmWriterContext & WriterCtx, bool PrintType)

    Full implementation of printing a Value as an operand with support for

    TypePrinting, etc.

    Defined at line 2721 of file llvm/lib/IR/AsmWriter.cpp

  • void writeAsOperandInternal (raw_ostream & Out, const Metadata * MD, AsmWriterContext & WriterCtx, bool FromValue)

    Defined at line 2806 of file llvm/lib/IR/AsmWriter.cpp

  • Value * simplifyWithOpReplaced (Value * V, Value * Op, Value * RepOp, const SimplifyQuery & Q, bool AllowRefinement, SmallVectorImpl<Instruction *> * DropFlags, unsigned int MaxRecurse)

    Defined at line 4523 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void LLVMRemoveStringAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, const char * K, unsigned int KLen)

    Defined at line 2638 of file llvm/lib/IR/Core.cpp

  • void LLVMAddTargetDependentFunctionAttr (LLVMValueRef Fn, const char * A, const char * V)

    Add a target-dependent attribute to a function

    Defined at line 2643 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMCountParams (LLVMValueRef Fn)

    Obtain the number of parameters in a function.

    Defined at line 2652 of file llvm/lib/IR/Core.cpp

  • void LLVMGetParams (LLVMValueRef Fn, LLVMValueRef * Params)

    Obtain the parameters in a function.

    The takes a pointer to a pre-allocated array of LLVMValueRef that is

    at least LLVMCountParams() long. This array will be filled with

    LLVMValueRef instances which correspond to the parameters the

    function receives. Each LLVMValueRef corresponds to a llvm::Argument

    instance.

    Defined at line 2658 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetParam (LLVMValueRef Fn, unsigned int Index)

    Obtain the parameter at the specified index.

    Parameters are indexed from 0.

    Defined at line 2664 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetParamParent (LLVMValueRef Inst)

    Obtain the function to which this argument belongs.

    Unlike other functions in this group, this one takes an LLVMValueRef

    that corresponds to a llvm::Attribute.

    The returned LLVMValueRef is the llvm::Function to which this

    argument belongs.

    Defined at line 2669 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetFirstParam (LLVMValueRef Fn)

    Obtain the first parameter to a function.

    Defined at line 2673 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetLastParam (LLVMValueRef Fn)

    Obtain the last parameter to a function.

    Defined at line 2681 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetNextParam (LLVMValueRef Arg)

    Obtain the next parameter to a function.

    This takes an LLVMValueRef obtained from LLVMGetFirstParam() (which is

    actually a wrapped iterator) and obtains the next parameter from the

    underlying iterator.

    Defined at line 2689 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetPreviousParam (LLVMValueRef Arg)

    Obtain the previous parameter to a function.

    This is the opposite of LLVMGetNextParam().

    Defined at line 2697 of file llvm/lib/IR/Core.cpp

  • void LLVMSetParamAlignment (LLVMValueRef Arg, unsigned int Align)

    Set the alignment for a function parameter.

    Defined at line 2704 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMAddGlobalIFunc (LLVMModuleRef M, const char * Name, size_t NameLen, LLVMTypeRef Ty, unsigned int AddrSpace, LLVMValueRef Resolver)

    Add a global indirect function to a module under a specified name.

    Defined at line 2711 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetNamedGlobalIFunc (LLVMModuleRef M, const char * Name, size_t NameLen)

    Obtain a GlobalIFunc value from a Module by its name.

    The returned value corresponds to a llvm::GlobalIFunc value.

    Defined at line 2721 of file llvm/lib/IR/Core.cpp

  • bool isReportingError (Function * Callee, CallInst * CI, int StreamArg)

    ===----------------------------------------------------------------------===//

    Formatting and IO Library Call Optimizations

    ===----------------------------------------------------------------------===//

    Defined at line 3343 of file llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

  • LLVMValueRef LLVMGetFirstGlobalIFunc (LLVMModuleRef M)

    Obtain an iterator to the first GlobalIFunc in a Module.

    Defined at line 2726 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetLastGlobalIFunc (LLVMModuleRef M)

    Obtain an iterator to the last GlobalIFunc in a Module.

    Defined at line 2734 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetNextGlobalIFunc (LLVMValueRef IFunc)

    Advance a GlobalIFunc iterator to the next GlobalIFunc.

    Returns NULL if the iterator was already at the end and there are no more

    global aliases.

    Defined at line 2742 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetPreviousGlobalIFunc (LLVMValueRef IFunc)

    Decrement a GlobalIFunc iterator to the previous GlobalIFunc.

    Returns NULL if the iterator was already at the beginning and there are

    no previous global aliases.

    Defined at line 2750 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetGlobalIFuncResolver (LLVMValueRef IFunc)

    Retrieves the resolver function associated with this indirect function, or

    NULL if it doesn't not exist.

    Defined at line 2758 of file llvm/lib/IR/Core.cpp

  • void LLVMSetGlobalIFuncResolver (LLVMValueRef IFunc, LLVMValueRef Resolver)

    Sets the resolver function associated with this indirect function.

    Defined at line 2762 of file llvm/lib/IR/Core.cpp

  • void LLVMEraseGlobalIFunc (LLVMValueRef IFunc)

    Remove a global indirect function from its parent module and delete it.

    Defined at line 2766 of file llvm/lib/IR/Core.cpp

  • void LLVMRemoveGlobalIFunc (LLVMValueRef IFunc)

    Remove a global indirect function from its parent module.

    This unlinks the global indirect function from its containing module but

    keeps it alive.

    Defined at line 2770 of file llvm/lib/IR/Core.cpp

  • LLVMOperandBundleRef LLVMCreateOperandBundle (const char * Tag, size_t TagLen, LLVMValueRef * Args, unsigned int NumArgs)

    Create a new operand bundle.

    Every invocation should be paired with LLVMDisposeOperandBundle() or memory

    will be leaked.

    Parameters

    Tag Tag name of the operand bundle
    TagLen Length of Tag
    Args Memory address of an array of bundle operands
    NumArgs Length of Args

    Defined at line 2776 of file llvm/lib/IR/Core.cpp

  • void LLVMDisposeOperandBundle (LLVMOperandBundleRef Bundle)

    Destroy an operand bundle.

    This must be called for every created operand bundle or memory will be

    leaked.

    Defined at line 2783 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetOperandBundleTag (LLVMOperandBundleRef Bundle, size_t * Len)

    Obtain the tag of an operand bundle as a string.

    Parameters

    Bundle Operand bundle to obtain tag of.
    Len Out parameter which holds the length of the returned string.

    Returns

    The tag name of Bundle.

    Defined at line 2787 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetNumOperandBundleArgs (LLVMOperandBundleRef Bundle)

    Obtain the number of operands for an operand bundle.

    Parameters

    Bundle Operand bundle to obtain operand count of.

    Returns

    The number of operands.

    Defined at line 2793 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetOperandBundleArgAtIndex (LLVMOperandBundleRef Bundle, unsigned int Index)

    Obtain the operand for an operand bundle at the given index.

    Parameters

    Bundle Operand bundle to obtain operand of.
    Index An operand index, must be less than LLVMGetNumOperandBundleArgs().

    Returns

    The operand.

    Defined at line 2797 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBasicBlockAsValue (LLVMBasicBlockRef BB)

    Convert a basic block instance to a value type.

    Defined at line 2804 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMValueIsBasicBlock (LLVMValueRef Val)

    Determine whether an LLVMValueRef is itself a basic block.

    Defined at line 2808 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMValueAsBasicBlock (LLVMValueRef Val)

    Convert an LLVMValueRef to an LLVMBasicBlockRef instance.

    Defined at line 2812 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetBasicBlockName (LLVMBasicBlockRef BB)

    Obtain the string name of a basic block.

    Defined at line 2816 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetBasicBlockParent (LLVMBasicBlockRef BB)

    Obtain the function to which a basic block belongs.

    Defined at line 2820 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetBasicBlockTerminator (LLVMBasicBlockRef BB)

    Obtain the terminator instruction for a basic block.

    If the basic block does not have a terminator (it is not well-formed

    if it doesn't), then NULL is returned.

    The returned LLVMValueRef corresponds to an llvm::Instruction.

    Defined at line 2824 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMCountBasicBlocks (LLVMValueRef Fn)

    Obtain the number of basic blocks in a function.

    Parameters

    Fn Function value to operate on.

    Defined at line 2828 of file llvm/lib/IR/Core.cpp

  • void LLVMGetBasicBlocks (LLVMValueRef Fn, LLVMBasicBlockRef * BasicBlocks)

    Obtain all of the basic blocks in a function.

    This operates on a function value. The BasicBlocks parameter is a

    pointer to a pre-allocated array of LLVMBasicBlockRef of at least

    LLVMCountBasicBlocks() in length. This array is populated with

    LLVMBasicBlockRef instances.

    Defined at line 2832 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetFirstBasicBlock (LLVMValueRef Fn)

    Obtain the first basic block in a function.

    The returned basic block can be used as an iterator. You will likely

    eventually call into LLVMGetNextBasicBlock() with it.

    Defined at line 2842 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetLastBasicBlock (LLVMValueRef Fn)

    Obtain the last basic block in a function.

    Defined at line 2850 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetNextBasicBlock (LLVMBasicBlockRef BB)

    Advance a basic block iterator.

    Defined at line 2858 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetPreviousBasicBlock (LLVMBasicBlockRef BB)

    Go backwards in a basic block iterator.

    Defined at line 2866 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetEntryBasicBlock (LLVMValueRef Fn)

    Obtain the basic block that corresponds to the entry point of a

    function.

    Defined at line 2838 of file llvm/lib/IR/Core.cpp

  • void LLVMInsertExistingBasicBlockAfterInsertBlock (LLVMBuilderRef Builder, LLVMBasicBlockRef BB)

    Insert the given basic block after the insertion point of the given builder.

    The insertion point must be valid.

    Defined at line 2879 of file llvm/lib/IR/Core.cpp

  • void LLVMAppendExistingBasicBlock (LLVMValueRef Fn, LLVMBasicBlockRef BB)

    Append the given basic block to the basic block list of the given function.

    Defined at line 2887 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMCreateBasicBlockInContext (LLVMContextRef C, const char * Name)

    Create a new basic block without inserting it into a function.

    Defined at line 2874 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMAppendBasicBlockInContext (LLVMContextRef C, LLVMValueRef Fn, const char * Name)

    Append a basic block to the end of a function.

    Defined at line 2892 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMAppendBasicBlock (LLVMValueRef Fn, const char * Name)

    Append a basic block to the end of a function using the global

    context.

    Defined at line 2898 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMInsertBasicBlockInContext (LLVMContextRef C, LLVMBasicBlockRef BB, const char * Name)

    Insert a basic block in a function before another basic block.

    The function to add to is determined by the function of the

    passed basic block.

    Defined at line 2902 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMInsertBasicBlock (LLVMBasicBlockRef InsertBeforeBB, const char * Name)

    Insert a basic block in a function using the global context.

    Defined at line 2909 of file llvm/lib/IR/Core.cpp

  • void LLVMDeleteBasicBlock (LLVMBasicBlockRef BB)

    Remove a basic block from a function and delete it.

    This deletes the basic block from its containing function and deletes

    the basic block itself.

    Defined at line 2914 of file llvm/lib/IR/Core.cpp

  • void LLVMRemoveBasicBlockFromParent (LLVMBasicBlockRef BB)

    Remove a basic block from a function.

    This deletes the basic block from its containing function but keep

    the basic block alive.

    Defined at line 2918 of file llvm/lib/IR/Core.cpp

  • void LLVMMoveBasicBlockBefore (LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)

    Move a basic block to before another one.

    Defined at line 2922 of file llvm/lib/IR/Core.cpp

  • void LLVMMoveBasicBlockAfter (LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)

    Move a basic block to after another one.

    Defined at line 2926 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetFirstInstruction (LLVMBasicBlockRef BB)

    Obtain the first instruction in a basic block.

    The returned LLVMValueRef corresponds to a llvm::Instruction

    instance.

    Defined at line 2936 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetLastInstruction (LLVMBasicBlockRef BB)

    Obtain the last instruction in a basic block.

    The returned LLVMValueRef corresponds to an LLVM:Instruction.

    Defined at line 2944 of file llvm/lib/IR/Core.cpp

  • void emitGlobalConstantImpl (const DataLayout & DL, const Constant * C, AsmPrinter & AP, const Constant * BaseCV, uint64_t Offset, int * AliasList)

    Defined at line 4237 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • LLVMBasicBlockRef LLVMGetInstructionParent (LLVMValueRef Inst)

    Obtain the basic block to which an instruction belongs.

    Defined at line 2932 of file llvm/lib/IR/Core.cpp

  • void emitGlobalConstantFP (const ConstantFP * CFP, AsmPrinter & AP)

    Defined at line 4090 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • void emitGlobalConstantFP (APFloat APF, Type * ET, AsmPrinter & AP)

    Defined at line 4046 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • LLVMValueRef LLVMGetNextInstruction (LLVMValueRef Inst)

    Obtain the instruction that occurs after the one specified.

    The next instruction will be from the same basic block.

    If this is the last instruction in a basic block, NULL will be

    returned.

    Defined at line 2952 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetPreviousInstruction (LLVMValueRef Inst)

    Obtain the instruction that occurred before this one.

    If the instruction is the first instruction in a basic block, NULL

    will be returned.

    Defined at line 2960 of file llvm/lib/IR/Core.cpp

  • void LLVMInstructionRemoveFromParent (LLVMValueRef Inst)

    Remove an instruction.

    The instruction specified is removed from its containing building

    block but is kept alive.

    Defined at line 2968 of file llvm/lib/IR/Core.cpp

  • void LLVMInstructionEraseFromParent (LLVMValueRef Inst)

    Remove and delete an instruction.

    The instruction specified is removed from its containing building

    block and then deleted.

    Defined at line 2972 of file llvm/lib/IR/Core.cpp

  • void LLVMDeleteInstruction (LLVMValueRef Inst)

    Delete an instruction.

    The instruction specified is deleted. It must have previously been

    removed from its containing building block.

    Defined at line 2976 of file llvm/lib/IR/Core.cpp

  •  LLVMGetInstructionOpcode (LLVMValueRef Inst)

    Obtain the code opcode for an individual instruction.

    Defined at line 3000 of file llvm/lib/IR/Core.cpp

  •  LLVMGetICmpPredicate (LLVMValueRef Inst)

    Obtain the predicate of an instruction.

    This is only valid for instructions that correspond to llvm::ICmpInst.

    Defined at line 2980 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMGetICmpSameSign (LLVMValueRef Inst)

    Get whether or not an icmp instruction has the samesign flag.

    This is only valid for instructions that correspond to llvm::ICmpInst.

    Defined at line 2986 of file llvm/lib/IR/Core.cpp

  • void LLVMSetICmpSameSign (LLVMValueRef Inst, LLVMBool SameSign)

    Set the samesign flag on an icmp instruction.

    This is only valid for instructions that correspond to llvm::ICmpInst.

    Defined at line 2990 of file llvm/lib/IR/Core.cpp

  •  LLVMGetFCmpPredicate (LLVMValueRef Inst)

    Obtain the float predicate of an instruction.

    This is only valid for instructions that correspond to llvm::FCmpInst.

    Defined at line 2994 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMInstructionClone (LLVMValueRef Inst)

    Create a copy of 'this' instruction that is identical in all ways

    except the following:

    * The instruction has no parent

    * The instruction has no name

    Defined at line 3006 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMIsATerminatorInst (LLVMValueRef Inst)

    Determine whether an instruction is a terminator. This routine is named to

    be compatible with historical functions that did this by querying the

    underlying C++ type.

    Defined at line 3012 of file llvm/lib/IR/Core.cpp

  • LLVMDbgRecordRef LLVMGetFirstDbgRecord (LLVMValueRef Inst)

    Obtain the first debug record attached to an instruction.

    Use LLVMGetNextDbgRecord() and LLVMGetPreviousDbgRecord() to traverse the

    sequence of DbgRecords.

    Return the first DbgRecord attached to Inst or NULL if there are none.

    Defined at line 3017 of file llvm/lib/IR/Core.cpp

  • void emitGlobalConstantLargeInt (const ConstantInt * CI, AsmPrinter & AP)

    Defined at line 4094 of file llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

  • LLVMDbgRecordRef LLVMGetLastDbgRecord (LLVMValueRef Inst)

    Obtain the last debug record attached to an instruction.

    Return the last DbgRecord attached to Inst or NULL if there are none.

    Defined at line 3027 of file llvm/lib/IR/Core.cpp

  • LLVMDbgRecordRef LLVMGetNextDbgRecord (LLVMDbgRecordRef DbgRecord)

    Obtain the next DbgRecord in the sequence or NULL if there are no more.

    Defined at line 3037 of file llvm/lib/IR/Core.cpp

  • LLVMDbgRecordRef LLVMGetPreviousDbgRecord (LLVMDbgRecordRef DbgRecord)

    Obtain the previous DbgRecord in the sequence or NULL if there are no more.

    Defined at line 3045 of file llvm/lib/IR/Core.cpp

  • LLVMMetadataRef LLVMDbgRecordGetDebugLoc (LLVMDbgRecordRef Rec)

    Get the debug location attached to the debug record.

    Defined at line 3053 of file llvm/lib/IR/Core.cpp

  •  LLVMDbgRecordGetKind (LLVMDbgRecordRef Rec)

    Defined at line 3057 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMDbgVariableRecordGetValue (LLVMDbgRecordRef Rec, unsigned int OpIdx)

    Get the value of the DbgVariableRecord.

    Defined at line 3071 of file llvm/lib/IR/Core.cpp

  • LLVMMetadataRef LLVMDbgVariableRecordGetVariable (LLVMDbgRecordRef Rec)

    Get the debug info variable of the DbgVariableRecord.

    Defined at line 3076 of file llvm/lib/IR/Core.cpp

  • LLVMMetadataRef LLVMDbgVariableRecordGetExpression (LLVMDbgRecordRef Rec)

    Get the debug info expression of the DbgVariableRecord.

    Defined at line 3080 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetNumArgOperands (LLVMValueRef Instr)

    Obtain the argument count for a call instruction.

    This expects an LLVMValueRef that corresponds to a llvm::CallInst,

    llvm::InvokeInst, or llvm:FuncletPadInst.

    Defined at line 3084 of file llvm/lib/IR/Core.cpp

  • void LLVMSetInstructionCallConv (LLVMValueRef Instr, unsigned int CC)

    Set the calling convention for a call instruction.

    This expects an LLVMValueRef that corresponds to a llvm::CallInst or

    llvm::InvokeInst.

    Defined at line 3097 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetInstructionCallConv (LLVMValueRef Instr)

    Obtain the calling convention for a call instruction.

    This is the opposite of LLVMSetInstructionCallConv(). Reads its

    usage.

    Defined at line 3093 of file llvm/lib/IR/Core.cpp

  • void LLVMSetInstrParamAlignment (LLVMValueRef Instr, LLVMAttributeIndex Idx, unsigned int Align)

    Defined at line 3102 of file llvm/lib/IR/Core.cpp

  • void LLVMAddCallSiteAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, LLVMAttributeRef A)

    Defined at line 3110 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetCallSiteAttributeCount (LLVMValueRef C, LLVMAttributeIndex Idx)

    Defined at line 3115 of file llvm/lib/IR/Core.cpp

  • void LLVMGetCallSiteAttributes (LLVMValueRef C, LLVMAttributeIndex Idx, LLVMAttributeRef * Attrs)

    Defined at line 3122 of file llvm/lib/IR/Core.cpp

  • LLVMAttributeRef LLVMGetCallSiteEnumAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, unsigned int KindID)

    Defined at line 3130 of file llvm/lib/IR/Core.cpp

  • LLVMAttributeRef LLVMGetCallSiteStringAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, const char * K, unsigned int KLen)

    Defined at line 3137 of file llvm/lib/IR/Core.cpp

  • void LLVMRemoveCallSiteEnumAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, unsigned int KindID)

    Defined at line 3144 of file llvm/lib/IR/Core.cpp

  • void LLVMRemoveCallSiteStringAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, const char * K, unsigned int KLen)

    Defined at line 3149 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMGetCalledFunctionType (LLVMValueRef C)

    Obtain the function type called by this instruction.

    Defined at line 3158 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetCalledValue (LLVMValueRef Instr)

    Obtain the pointer to the function invoked by this instruction.

    This expects an LLVMValueRef that corresponds to a llvm::CallInst or

    llvm::InvokeInst.

    Defined at line 3154 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetNumOperandBundles (LLVMValueRef C)

    Obtain the number of operand bundles attached to this instruction.

    This only works on llvm::CallInst and llvm::InvokeInst instructions.

    Defined at line 3162 of file llvm/lib/IR/Core.cpp

  • LLVMOperandBundleRef LLVMGetOperandBundleAtIndex (LLVMValueRef C, unsigned int Index)

    Obtain the operand bundle attached to this instruction at the given index.

    Use LLVMDisposeOperandBundle to free the operand bundle.

    This only works on llvm::CallInst and llvm::InvokeInst instructions.

    Defined at line 3166 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsTailCall (LLVMValueRef CallInst)

    Obtain whether a call instruction is a tail call.

    This only works on llvm::CallInst instructions.

    Defined at line 3174 of file llvm/lib/IR/Core.cpp

  • void LLVMSetTailCall (LLVMValueRef CallInst, LLVMBool IsTailCall)

    Set whether a call instruction is a tail call.

    This only works on llvm::CallInst instructions.

    Defined at line 3178 of file llvm/lib/IR/Core.cpp

  •  LLVMGetTailCallKind (LLVMValueRef CallInst)

    Obtain a tail call kind of the call instruction.

    Defined at line 3182 of file llvm/lib/IR/Core.cpp

  • void LLVMSetTailCallKind (LLVMValueRef CallInst,  kind)

    Set the call kind of the call instruction.

    Defined at line 3186 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetNormalDest (LLVMValueRef InvokeInst)

    Return the normal destination basic block.

    This only works on llvm::InvokeInst instructions.

    Defined at line 3192 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetUnwindDest (LLVMValueRef InvokeInst)

    Return the unwind destination basic block.

    Works on llvm::InvokeInst, llvm::CleanupReturnInst, and

    llvm::CatchSwitchInst instructions.

    Defined at line 3196 of file llvm/lib/IR/Core.cpp

  • void LLVMSetNormalDest (LLVMValueRef InvokeInst, LLVMBasicBlockRef B)

    Set the normal destination basic block.

    This only works on llvm::InvokeInst instructions.

    Defined at line 3205 of file llvm/lib/IR/Core.cpp

  • unsigned int ComputeNumSignBitsImpl (const Value * V, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)

    Return the number of times the sign bit of the register is replicated into

    the other bits. We know that at least 1 bit is always equal to the sign bit

    (itself), but other cases can give us information. For example, immediately

    after an "ashr X, 2", we know that the top 3 bits are all equal to each

    other, so we return 3. For vectors, return the number of sign bits for the

    vector element with the minimum number of known sign bits of the demanded

    elements in the vector specified by DemandedElts.

    Defined at line 4213 of file llvm/lib/Analysis/ValueTracking.cpp

  • void LLVMSetUnwindDest (LLVMValueRef InvokeInst, LLVMBasicBlockRef B)

    Set the unwind destination basic block.

    Works on llvm::InvokeInst, llvm::CleanupReturnInst, and

    llvm::CatchSwitchInst instructions.

    Defined at line 3209 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetCallBrDefaultDest (LLVMValueRef CallBr)

    Get the default destination of a CallBr instruction.

    Defined at line 3218 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetCallBrNumIndirectDests (LLVMValueRef CallBr)

    Get the number of indirect destinations of a CallBr instruction.

    Defined at line 3222 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetCallBrIndirectDest (LLVMValueRef CallBr, unsigned int Idx)

    Get the indirect destination of a CallBr instruction at the given index.

    Defined at line 3226 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetNumSuccessors (LLVMValueRef Term)

    Return the number of successors that this terminator has.

    Defined at line 3232 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetSuccessor (LLVMValueRef Term, unsigned int i)

    Return the specified successor.

    Defined at line 3236 of file llvm/lib/IR/Core.cpp

  • void LLVMSetSuccessor (LLVMValueRef Term, unsigned int i, LLVMBasicBlockRef block)

    Update the specified successor to point at the provided block.

    Defined at line 3240 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsConditional (LLVMValueRef Branch)

    Return if a branch is conditional.

    This only works on llvm::BranchInst instructions.

    Defined at line 3246 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetCondition (LLVMValueRef Branch)

    Return the condition of a branch instruction.

    This only works on llvm::BranchInst instructions.

    Defined at line 3250 of file llvm/lib/IR/Core.cpp

  • void LLVMSetCondition (LLVMValueRef Branch, LLVMValueRef Cond)

    Set the condition of a branch instruction.

    This only works on llvm::BranchInst instructions.

    Defined at line 3254 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetSwitchDefaultDest (LLVMValueRef SwitchInstr)

    Obtain the default destination basic block of a switch instruction.

    This only works on llvm::SwitchInst instructions.

    Defined at line 3260 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetSwitchCaseValue (LLVMValueRef SwitchInstr, unsigned int i)

    Obtain the case value for a successor of a switch instruction. i corresponds

    to the successor index. The first successor is the default destination, so i

    must be greater than zero.

    This only works on llvm::SwitchInst instructions.

    Defined at line 3264 of file llvm/lib/IR/Core.cpp

  • void LLVMSetSwitchCaseValue (LLVMValueRef SwitchInstr, unsigned int i, LLVMValueRef CaseValue)

    Set the case value for a successor of a switch instruction. i corresponds to

    the successor index. The first successor is the default destination, so i

    must be greater than zero.

    This only works on llvm::SwitchInst instructions.

    Defined at line 3270 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMGetAllocatedType (LLVMValueRef Alloca)

    Obtain the type that is being allocated by the alloca instruction.

    Defined at line 3279 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsInBounds (LLVMValueRef GEP)

    Check whether the given GEP operator is inbounds.

    Defined at line 3285 of file llvm/lib/IR/Core.cpp

  • void LLVMSetIsInBounds (LLVMValueRef GEP, LLVMBool InBounds)

    Set the given GEP instruction to be inbounds or not.

    Defined at line 3289 of file llvm/lib/IR/Core.cpp

  • LLVMTypeRef LLVMGetGEPSourceElementType (LLVMValueRef GEP)

    Get the source element type of the given GEP operator.

    Defined at line 3293 of file llvm/lib/IR/Core.cpp

  • LLVMGEPNoWrapFlags LLVMGEPGetNoWrapFlags (LLVMValueRef GEP)

    Get the no-wrap related flags for the given GEP instruction.

    Defined at line 3297 of file llvm/lib/IR/Core.cpp

  • void LLVMGEPSetNoWrapFlags (LLVMValueRef GEP, LLVMGEPNoWrapFlags NoWrapFlags)

    Set the no-wrap related flags for the given GEP instruction.

    Defined at line 3302 of file llvm/lib/IR/Core.cpp

  • void LLVMAddIncoming (LLVMValueRef PhiNode, LLVMValueRef * IncomingValues, LLVMBasicBlockRef * IncomingBlocks, unsigned int Count)

    Add an incoming value to the end of a PHI list.

    Defined at line 3309 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMCountIncoming (LLVMValueRef PhiNode)

    Obtain the number of incoming basic blocks to a PHI node.

    Defined at line 3316 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetIncomingValue (LLVMValueRef PhiNode, unsigned int Index)

    Obtain an incoming value to a PHI node as an LLVMValueRef.

    Defined at line 3320 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetIncomingBlock (LLVMValueRef PhiNode, unsigned int Index)

    Obtain an incoming value to a PHI node as an LLVMBasicBlockRef.

    Defined at line 3324 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetNumIndices (LLVMValueRef Inst)

    Obtain the number of indices.

    NB: This also works on GEP operators.

    Defined at line 3330 of file llvm/lib/IR/Core.cpp

  • const unsigned int * LLVMGetIndices (LLVMValueRef Inst)

    Obtain the indices as an array.

    Defined at line 3342 of file llvm/lib/IR/Core.cpp

  • LLVMBuilderRef LLVMCreateBuilderInContext (LLVMContextRef C)

    An instruction builder represents a point within a basic block and is

    the exclusive means of building instructions using the C interface.

    @

    {

    Defined at line 3355 of file llvm/lib/IR/Core.cpp

  • LLVMBuilderRef LLVMCreateBuilder ()

    Defined at line 3359 of file llvm/lib/IR/Core.cpp

  • void LLVMPositionBuilder (LLVMBuilderRef Builder, LLVMBasicBlockRef Block, LLVMValueRef Instr)

    Set the builder position before Instr but after any attached debug records,

    or if Instr is null set the position to the end of Block.

    Defined at line 3370 of file llvm/lib/IR/Core.cpp

  • void LLVMPositionBuilderBeforeDbgRecords (LLVMBuilderRef Builder, LLVMBasicBlockRef Block, LLVMValueRef Inst)

    Set the builder position before Instr and any attached debug records,

    or if Instr is null set the position to the end of Block.

    Defined at line 3376 of file llvm/lib/IR/Core.cpp

  • void LLVMPositionBuilderBefore (LLVMBuilderRef Builder, LLVMValueRef Instr)

    Set the builder position before Instr but after any attached debug records.

    Defined at line 3383 of file llvm/lib/IR/Core.cpp

  • void LLVMPositionBuilderBeforeInstrAndDbgRecords (LLVMBuilderRef Builder, LLVMValueRef Instr)

    Set the builder position before Instr and any attached debug records.

    Defined at line 3388 of file llvm/lib/IR/Core.cpp

  • void LLVMPositionBuilderAtEnd (LLVMBuilderRef Builder, LLVMBasicBlockRef Block)

    Defined at line 3394 of file llvm/lib/IR/Core.cpp

  • LLVMBasicBlockRef LLVMGetInsertBlock (LLVMBuilderRef Builder)

    Defined at line 3399 of file llvm/lib/IR/Core.cpp

  • void LLVMClearInsertionPosition (LLVMBuilderRef Builder)

    Defined at line 3403 of file llvm/lib/IR/Core.cpp

  • void LLVMInsertIntoBuilder (LLVMBuilderRef Builder, LLVMValueRef Instr)

    Defined at line 3407 of file llvm/lib/IR/Core.cpp

  • void LLVMInsertIntoBuilderWithName (LLVMBuilderRef Builder, LLVMValueRef Instr, const char * Name)

    Defined at line 3411 of file llvm/lib/IR/Core.cpp

  • void LLVMDisposeBuilder (LLVMBuilderRef Builder)

    Defined at line 3416 of file llvm/lib/IR/Core.cpp

  • LLVMMetadataRef LLVMGetCurrentDebugLocation2 (LLVMBuilderRef Builder)

    Get location information used by debugging information.

    Defined at line 3422 of file llvm/lib/IR/Core.cpp

  • void LLVMSetCurrentDebugLocation2 (LLVMBuilderRef Builder, LLVMMetadataRef Loc)

    Set location information used by debugging information.

    To clear the location metadata of the given instruction, pass NULL to

    Defined at line 3426 of file llvm/lib/IR/Core.cpp

  • void LLVMSetInstDebugLocation (LLVMBuilderRef Builder, LLVMValueRef Inst)

    Attempts to set the debug location for the given instruction using the

    current debug location for the given builder. If the builder has no current

    debug location, this function is a no-op.

    Defined at line 3445 of file llvm/lib/IR/Core.cpp

  • void LLVMAddMetadataToInst (LLVMBuilderRef Builder, LLVMValueRef Inst)

    Adds the metadata registered with the given builder to the given instruction.

    Defined at line 3449 of file llvm/lib/IR/Core.cpp

  • LLVMMetadataRef LLVMBuilderGetDefaultFPMathTag (LLVMBuilderRef Builder)

    Get the dafult floating-point math metadata for a given builder.

    Defined at line 3465 of file llvm/lib/IR/Core.cpp

  • void LLVMBuilderSetDefaultFPMathTag (LLVMBuilderRef Builder, LLVMMetadataRef FPMathTag)

    Set the default floating-point math metadata for the given builder.

    To clear the metadata, pass NULL to

    Defined at line 3453 of file llvm/lib/IR/Core.cpp

  • LLVMContextRef LLVMGetBuilderContext (LLVMBuilderRef Builder)

    Obtain the context to which this builder is associated.

    Defined at line 3461 of file llvm/lib/IR/Core.cpp

  • void LLVMSetCurrentDebugLocation (LLVMBuilderRef Builder, LLVMValueRef L)

    Deprecated: Passing the NULL location will crash.

    Use LLVMGetCurrentDebugLocation2 instead.

    Defined at line 3433 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetCurrentDebugLocation (LLVMBuilderRef Builder)

    Deprecated: Returning the NULL location will crash.

    Use LLVMGetCurrentDebugLocation2 instead.

    Defined at line 3439 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildRetVoid (LLVMBuilderRef )

    Terminators

    Defined at line 3471 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildRet (LLVMBuilderRef , LLVMValueRef V)

    Defined at line 3475 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildAggregateRet (LLVMBuilderRef , LLVMValueRef * RetVals, unsigned int N)

    Defined at line 3479 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildBr (LLVMBuilderRef , LLVMBasicBlockRef Dest)

    Defined at line 3484 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCondBr (LLVMBuilderRef , LLVMValueRef If, LLVMBasicBlockRef Then, LLVMBasicBlockRef Else)

    Defined at line 3488 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildSwitch (LLVMBuilderRef , LLVMValueRef V, LLVMBasicBlockRef Else, unsigned int NumCases)

    Defined at line 3493 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildIndirectBr (LLVMBuilderRef B, LLVMValueRef Addr, unsigned int NumDests)

    Defined at line 3498 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCallBr (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMBasicBlockRef DefaultDest, LLVMBasicBlockRef * IndirectDests, unsigned int NumIndirectDests, LLVMValueRef * Args, unsigned int NumArgs, LLVMOperandBundleRef * Bundles, unsigned int NumBundles, const char * Name)

    Defined at line 3503 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildInvoke2 (LLVMBuilderRef , LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef * Args, unsigned int NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, const char * Name)

    Defined at line 3522 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildInvokeWithOperandBundles (LLVMBuilderRef , LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef * Args, unsigned int NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, LLVMOperandBundleRef * Bundles, unsigned int NumBundles, const char * Name)

    Defined at line 3531 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildUnreachable (LLVMBuilderRef )

    Defined at line 3602 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildResume (LLVMBuilderRef B, LLVMValueRef Exn)

    Exception Handling

    Defined at line 3575 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildLandingPad (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef PersFn, unsigned int NumClauses, const char * Name)

    Defined at line 3545 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCleanupRet (LLVMBuilderRef B, LLVMValueRef CatchPad, LLVMBasicBlockRef BB)

    Defined at line 3596 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCatchRet (LLVMBuilderRef B, LLVMValueRef CatchPad, LLVMBasicBlockRef BB)

    Defined at line 3590 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCatchPad (LLVMBuilderRef B, LLVMValueRef ParentPad, LLVMValueRef * Args, unsigned int NumArgs, const char * Name)

    Defined at line 3557 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCleanupPad (LLVMBuilderRef B, LLVMValueRef ParentPad, LLVMValueRef * Args, unsigned int NumArgs, const char * Name)

    Defined at line 3564 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCatchSwitch (LLVMBuilderRef B, LLVMValueRef ParentPad, LLVMBasicBlockRef UnwindBB, unsigned int NumHandlers, const char * Name)

    Defined at line 3579 of file llvm/lib/IR/Core.cpp

  • void LLVMAddCase (LLVMValueRef Switch, LLVMValueRef OnVal, LLVMBasicBlockRef Dest)

    Add a case to the switch instruction

    Defined at line 3606 of file llvm/lib/IR/Core.cpp

  • void LLVMAddDestination (LLVMValueRef IndirectBr, LLVMBasicBlockRef Dest)

    Add a destination to the indirectbr instruction

    Defined at line 3611 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetNumClauses (LLVMValueRef LandingPad)

    Get the number of clauses on the landingpad instruction

    Defined at line 3615 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetClause (LLVMValueRef LandingPad, unsigned int Idx)

    Get the value of the clause at index Idx on the landingpad instruction

    Defined at line 3619 of file llvm/lib/IR/Core.cpp

  • void LLVMAddClause (LLVMValueRef LandingPad, LLVMValueRef ClauseVal)

    Add a catch or filter clause to the landingpad instruction

    Defined at line 3623 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsCleanup (LLVMValueRef LandingPad)

    Get the 'cleanup' flag in the landingpad instruction

    Defined at line 3627 of file llvm/lib/IR/Core.cpp

  • void LLVMSetCleanup (LLVMValueRef LandingPad, LLVMBool Val)

    Set the 'cleanup' flag in the landingpad instruction

    Defined at line 3631 of file llvm/lib/IR/Core.cpp

  • void LLVMAddHandler (LLVMValueRef CatchSwitch, LLVMBasicBlockRef Dest)

    Add a destination to the catchswitch instruction

    Defined at line 3635 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetNumHandlers (LLVMValueRef CatchSwitch)

    Get the number of handlers on the catchswitch instruction

    Defined at line 3639 of file llvm/lib/IR/Core.cpp

  • void LLVMGetHandlers (LLVMValueRef CatchSwitch, LLVMBasicBlockRef * Handlers)

    Obtain the basic blocks acting as handlers for a catchswitch instruction.

    The Handlers parameter should point to a pre-allocated array of

    LLVMBasicBlockRefs at least LLVMGetNumHandlers() large. On return, the

    first LLVMGetNumHandlers() entries in the array will be populated

    with LLVMBasicBlockRef instances.

    Parameters

    CatchSwitch The catchswitch instruction to operate on.
    Handlers Memory address of an array to be filled with basic blocks.

    Defined at line 3643 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetArgOperand (LLVMValueRef Funclet, unsigned int i)

    Get the number of funcletpad arguments.

    Defined at line 3660 of file llvm/lib/IR/Core.cpp

  • void LLVMSetArgOperand (LLVMValueRef Funclet, unsigned int i, LLVMValueRef value)

    Set a funcletpad argument at the given index.

    Defined at line 3664 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMGetParentCatchSwitch (LLVMValueRef CatchPad)

    Get the parent catchswitch instruction of a catchpad instruction.

    This only works on llvm::CatchPadInst instructions.

    Defined at line 3649 of file llvm/lib/IR/Core.cpp

  • void LLVMSetParentCatchSwitch (LLVMValueRef CatchPad, LLVMValueRef CatchSwitch)

    Set the parent catchswitch instruction of a catchpad instruction.

    This only works on llvm::CatchPadInst instructions.

    Defined at line 3653 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildAdd (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Arithmetic

    Defined at line 3703 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNSWAdd (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3708 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNUWAdd (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3713 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFAdd (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3718 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildSub (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3723 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNSWSub (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3728 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNUWSub (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3733 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFSub (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3738 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildMul (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3743 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNSWMul (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3748 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNUWMul (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3753 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFMul (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3758 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildUDiv (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3763 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildExactUDiv (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3768 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildSDiv (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3773 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildExactSDiv (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3778 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFDiv (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3783 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildURem (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3788 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildSRem (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3793 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFRem (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3798 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildShl (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3803 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildLShr (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3808 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildAShr (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3813 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildAnd (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3818 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildOr (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3823 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildXor (LLVMBuilderRef , LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3828 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildBinOp (LLVMBuilderRef B,  Op, LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 3833 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNeg (LLVMBuilderRef , LLVMValueRef V, const char * Name)

    Defined at line 3840 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNSWNeg (LLVMBuilderRef B, LLVMValueRef V, const char * Name)

    Defined at line 3844 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNUWNeg (LLVMBuilderRef B, LLVMValueRef V, const char * Name)

    Defined at line 3849 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFNeg (LLVMBuilderRef , LLVMValueRef V, const char * Name)

    Defined at line 3857 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildNot (LLVMBuilderRef , LLVMValueRef V, const char * Name)

    Defined at line 3861 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMGetNUW (LLVMValueRef ArithInst)

    Defined at line 3865 of file llvm/lib/IR/Core.cpp

  • void LLVMSetNUW (LLVMValueRef ArithInst, LLVMBool HasNUW)

    Defined at line 3870 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMGetNSW (LLVMValueRef ArithInst)

    Defined at line 3875 of file llvm/lib/IR/Core.cpp

  • void LLVMSetNSW (LLVMValueRef ArithInst, LLVMBool HasNSW)

    Defined at line 3880 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMGetExact (LLVMValueRef DivOrShrInst)

    Defined at line 3885 of file llvm/lib/IR/Core.cpp

  • void LLVMSetExact (LLVMValueRef DivOrShrInst, LLVMBool IsExact)

    Defined at line 3890 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMGetNNeg (LLVMValueRef NonNegInst)

    Gets if the instruction has the non-negative flag set.

    Only valid for zext instructions.

    Defined at line 3895 of file llvm/lib/IR/Core.cpp

  • void LLVMSetNNeg (LLVMValueRef NonNegInst, LLVMBool IsNonNeg)

    Sets the non-negative flag for the instruction.

    Only valid for zext instructions.

    Defined at line 3900 of file llvm/lib/IR/Core.cpp

  • LLVMFastMathFlags LLVMGetFastMathFlags (LLVMValueRef FPMathInst)

    Get the flags for which fast-math-style optimizations are allowed for this

    value.

    Only valid on floating point instructions.

    Defined at line 3905 of file llvm/lib/IR/Core.cpp

  • void LLVMSetFastMathFlags (LLVMValueRef FPMathInst, LLVMFastMathFlags FMF)

    Sets the flags for which fast-math-style optimizations are allowed for this

    value.

    Only valid on floating point instructions.

    Defined at line 3911 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMCanValueUseFastMathFlags (LLVMValueRef Inst)

    Check if a given value can potentially have fast math flags.

    Will return true for floating point arithmetic instructions, and for select,

    phi, and call instructions whose type is a floating point type, or a vector

    or array thereof. See https://llvm.org/docs/LangRef.html#fast-math-flags

    Defined at line 3916 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMGetIsDisjoint (LLVMValueRef Inst)

    Gets whether the instruction has the disjoint flag set.

    Only valid for or instructions.

    Defined at line 3921 of file llvm/lib/IR/Core.cpp

  • void LLVMSetIsDisjoint (LLVMValueRef Inst, LLVMBool IsDisjoint)

    Sets the disjoint flag for the instruction.

    Only valid for or instructions.

    Defined at line 3926 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildMalloc (LLVMBuilderRef , LLVMTypeRef Ty, const char * Name)

    Memory

    Defined at line 3933 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildArrayMalloc (LLVMBuilderRef , LLVMTypeRef Ty, LLVMValueRef Val, const char * Name)

    Defined at line 3942 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildMemSet (LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Val, LLVMValueRef Len, unsigned int Align)

    Creates and inserts a memset to the specified pointer and the

    specified value.

    Defined at line 3951 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildMemCpy (LLVMBuilderRef B, LLVMValueRef Dst, unsigned int DstAlign, LLVMValueRef Src, unsigned int SrcAlign, LLVMValueRef Size)

    Creates and inserts a memcpy between the specified pointers.

    Defined at line 3958 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildMemMove (LLVMBuilderRef B, LLVMValueRef Dst, unsigned int DstAlign, LLVMValueRef Src, unsigned int SrcAlign, LLVMValueRef Size)

    Creates and inserts a memmove between the specified pointers.

    Defined at line 3967 of file llvm/lib/IR/Core.cpp

  • void computeKnownFPClass (const Value * V, const APInt & DemandedElts, FPClassTest InterestedClasses, KnownFPClass & Known, const SimplifyQuery & Q, unsigned int Depth)

    Defined at line 4909 of file llvm/lib/Analysis/ValueTracking.cpp

  • LLVMValueRef LLVMBuildAlloca (LLVMBuilderRef , LLVMTypeRef Ty, const char * Name)

    Defined at line 3976 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildArrayAlloca (LLVMBuilderRef , LLVMTypeRef Ty, LLVMValueRef Val, const char * Name)

    Defined at line 3981 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFree (LLVMBuilderRef , LLVMValueRef PointerVal)

    Defined at line 3986 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildLoad2 (LLVMBuilderRef , LLVMTypeRef Ty, LLVMValueRef PointerVal, const char * Name)

    Defined at line 3990 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildStore (LLVMBuilderRef , LLVMValueRef Val, LLVMValueRef Ptr)

    Defined at line 3995 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildGEP2 (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef * Indices, unsigned int NumIndices, const char * Name)

    Defined at line 4117 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildInBoundsGEP2 (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef * Indices, unsigned int NumIndices, const char * Name)

    Defined at line 4124 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildGEPWithNoWrapFlags (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef * Indices, unsigned int NumIndices, const char * Name, LLVMGEPNoWrapFlags NoWrapFlags)

    Creates a GetElementPtr instruction. Similar to LLVMBuildGEP2, but allows

    specifying the no-wrap flags.

    Defined at line 4132 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildStructGEP2 (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, unsigned int Idx, const char * Name)

    Defined at line 4142 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildGlobalString (LLVMBuilderRef B, const char * Str, const char * Name)

    Defined at line 4149 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildGlobalStringPtr (LLVMBuilderRef B, const char * Str, const char * Name)

    Deprecated: Use LLVMBuildGlobalString instead, which has identical behavior.

    Defined at line 4154 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMGetVolatile (LLVMValueRef Inst)

    Defined at line 4159 of file llvm/lib/IR/Core.cpp

  • void LLVMSetVolatile (LLVMValueRef MemoryAccessInst, LLVMBool IsVolatile)

    Defined at line 4163 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMGetWeak (LLVMValueRef CmpXchgInst)

    Defined at line 4174 of file llvm/lib/IR/Core.cpp

  • void LLVMSetWeak (LLVMValueRef CmpXchgInst, LLVMBool IsWeak)

    Defined at line 4178 of file llvm/lib/IR/Core.cpp

  •  LLVMGetOrdering (LLVMValueRef MemoryAccessInst)

    Defined at line 4182 of file llvm/lib/IR/Core.cpp

  • void LLVMSetOrdering (LLVMValueRef MemoryAccessInst,  Ordering)

    Defined at line 4196 of file llvm/lib/IR/Core.cpp

  •  LLVMGetAtomicRMWBinOp (LLVMValueRef AtomicRMWInst)

    Defined at line 4209 of file llvm/lib/IR/Core.cpp

  • void LLVMSetAtomicRMWBinOp (LLVMValueRef AtomicRMWInst,  BinOp)

    Defined at line 4213 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildTrunc (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Casts

    Defined at line 4219 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildZExt (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4224 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildSExt (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4229 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFPToUI (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4234 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFPToSI (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4239 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildUIToFP (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4244 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildSIToFP (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4249 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFPTrunc (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4254 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFPExt (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4259 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildPtrToInt (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4264 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildIntToPtr (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4269 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildBitCast (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4274 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildAddrSpaceCast (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4279 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildZExtOrBitCast (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4284 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildSExtOrBitCast (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4290 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildTruncOrBitCast (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4296 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCast (LLVMBuilderRef B,  Op, LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4302 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildPointerCast (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4308 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildIntCast2 (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, LLVMBool IsSigned, const char * Name)

    Defined at line 4313 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFPCast (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Defined at line 4326 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildIntCast (LLVMBuilderRef , LLVMValueRef Val, LLVMTypeRef DestTy, const char * Name)

    Deprecated: This cast is always signed. Use LLVMBuildIntCast2 instead.

    Defined at line 4320 of file llvm/lib/IR/Core.cpp

  •  LLVMGetCastOpcode (LLVMValueRef Src, LLVMBool SrcIsSigned, LLVMTypeRef DestTy, LLVMBool DestIsSigned)

    Defined at line 4331 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildICmp (LLVMBuilderRef ,  Op, LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Comparisons

    Defined at line 4339 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFCmp (LLVMBuilderRef ,  Op, LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 4346 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildPhi (LLVMBuilderRef , LLVMTypeRef Ty, const char * Name)

    Miscellaneous instructions

    Defined at line 4355 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCall2 (LLVMBuilderRef , LLVMTypeRef , LLVMValueRef Fn, LLVMValueRef * Args, unsigned int NumArgs, const char * Name)

    Defined at line 4359 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildCallWithOperandBundles (LLVMBuilderRef , LLVMTypeRef , LLVMValueRef Fn, LLVMValueRef * Args, unsigned int NumArgs, LLVMOperandBundleRef * Bundles, unsigned int NumBundles, const char * Name)

    Defined at line 4367 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildSelect (LLVMBuilderRef , LLVMValueRef If, LLVMValueRef Then, LLVMValueRef Else, const char * Name)

    Defined at line 4382 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildVAArg (LLVMBuilderRef , LLVMValueRef List, LLVMTypeRef Ty, const char * Name)

    Defined at line 4389 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildExtractElement (LLVMBuilderRef , LLVMValueRef VecVal, LLVMValueRef Index, const char * Name)

    Defined at line 4394 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildInsertElement (LLVMBuilderRef , LLVMValueRef VecVal, LLVMValueRef EltVal, LLVMValueRef Index, const char * Name)

    Defined at line 4400 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildShuffleVector (LLVMBuilderRef , LLVMValueRef V1, LLVMValueRef V2, LLVMValueRef Mask, const char * Name)

    Defined at line 4407 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildExtractValue (LLVMBuilderRef , LLVMValueRef AggVal, unsigned int Index, const char * Name)

    Defined at line 4414 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildInsertValue (LLVMBuilderRef , LLVMValueRef AggVal, LLVMValueRef EltVal, unsigned int Index, const char * Name)

    Defined at line 4419 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFreeze (LLVMBuilderRef , LLVMValueRef Val, const char * Name)

    Defined at line 4426 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildIsNull (LLVMBuilderRef , LLVMValueRef Val, const char * Name)

    Defined at line 4431 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildIsNotNull (LLVMBuilderRef , LLVMValueRef Val, const char * Name)

    Defined at line 4436 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildPtrDiff2 (LLVMBuilderRef , LLVMTypeRef ElemTy, LLVMValueRef LHS, LLVMValueRef RHS, const char * Name)

    Defined at line 4441 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFence (LLVMBuilderRef B,  ordering, LLVMBool singleThread, const char * Name)

    Defined at line 4101 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildFenceSyncScope (LLVMBuilderRef B,  ordering, unsigned int SSID, const char * Name)

    Defined at line 4110 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildAtomicRMW (LLVMBuilderRef B,  op, LLVMValueRef PTR, LLVMValueRef Val,  ordering, LLVMBool singleThread)

    Defined at line 4448 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildAtomicRMWSyncScope (LLVMBuilderRef B,  op, LLVMValueRef PTR, LLVMValueRef Val,  ordering, unsigned int SSID)

    Defined at line 4459 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildAtomicCmpXchg (LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Cmp, LLVMValueRef New,  SuccessOrdering,  FailureOrdering, LLVMBool SingleThread)

    Defined at line 4470 of file llvm/lib/IR/Core.cpp

  • LLVMValueRef LLVMBuildAtomicCmpXchgSyncScope (LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Cmp, LLVMValueRef New,  SuccessOrdering,  FailureOrdering, unsigned int SSID)

    Defined at line 4483 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetNumMaskElements (LLVMValueRef ShuffleVectorInst)

    Get the number of elements in the mask of a ShuffleVector instruction.

    Defined at line 4494 of file llvm/lib/IR/Core.cpp

  • bool print_protocol_list (uint32_t p, uint32_t indent, struct DisassembleInfo * info)

    Defined at line 5135 of file llvm/tools/llvm-objdump/MachODump.cpp

  • int LLVMGetUndefMaskElem ()

    Defined at line 4506 of file llvm/lib/IR/Core.cpp

  • int LLVMGetMaskValue (LLVMValueRef ShuffleVectorInst, unsigned int Elt)

    Get the mask value at position Elt in the mask of a ShuffleVector

    instruction.

    Defined at line 4500 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsAtomicSingleThread (LLVMValueRef AtomicInst)

    Defined at line 4512 of file llvm/lib/IR/Core.cpp

  • void LLVMSetAtomicSingleThread (LLVMValueRef AtomicInst, LLVMBool SingleThread)

    Defined at line 4521 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsAtomic (LLVMValueRef Inst)

    Returns whether an instruction is an atomic instruction, e.g., atomicrmw,

    cmpxchg, fence, or loads and stores with atomic ordering.

    Defined at line 4508 of file llvm/lib/IR/Core.cpp

  • unsigned int LLVMGetAtomicSyncScopeID (LLVMValueRef AtomicInst)

    Returns the synchronization scope ID of an atomic instruction.

    Defined at line 4531 of file llvm/lib/IR/Core.cpp

  • void LLVMSetAtomicSyncScopeID (LLVMValueRef AtomicInst, unsigned int SSID)

    Sets the synchronization scope ID of an atomic instruction.

    Defined at line 4537 of file llvm/lib/IR/Core.cpp

  •  LLVMGetCmpXchgSuccessOrdering (LLVMValueRef CmpXchgInst)

    Defined at line 4543 of file llvm/lib/IR/Core.cpp

  • void LLVMSetCmpXchgSuccessOrdering (LLVMValueRef CmpXchgInst,  Ordering)

    Defined at line 4548 of file llvm/lib/IR/Core.cpp

  •  LLVMGetCmpXchgFailureOrdering (LLVMValueRef CmpXchgInst)

    Defined at line 4556 of file llvm/lib/IR/Core.cpp

  • void LLVMSetCmpXchgFailureOrdering (LLVMValueRef CmpXchgInst,  Ordering)

    Defined at line 4561 of file llvm/lib/IR/Core.cpp

  • LLVMModuleProviderRef LLVMCreateModuleProviderForExistingModule (LLVMModuleRef M)

    Changes the type of M so it can be passed to FunctionPassManagers and the

    JIT. They take ModuleProviders for historical reasons.

    Defined at line 4571 of file llvm/lib/IR/Core.cpp

  • void LLVMDisposeModuleProvider (LLVMModuleProviderRef M)

    Destroys the module M.

    Defined at line 4576 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMCreateMemoryBufferWithContentsOfFile (const char * Path, LLVMMemoryBufferRef * OutMemBuf, char ** OutMessage)

    @

    {

    Defined at line 4583 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMCreateMemoryBufferWithSTDIN (LLVMMemoryBufferRef * OutMemBuf, char ** OutMessage)

    Defined at line 4597 of file llvm/lib/IR/Core.cpp

  • LLVMMemoryBufferRef LLVMCreateMemoryBufferWithMemoryRange (const char * InputData, size_t InputDataLength, const char * BufferName, LLVMBool RequiresNullTerminator)

    Defined at line 4608 of file llvm/lib/IR/Core.cpp

  • LLVMMemoryBufferRef LLVMCreateMemoryBufferWithMemoryRangeCopy (const char * InputData, size_t InputDataLength, const char * BufferName)

    Defined at line 4619 of file llvm/lib/IR/Core.cpp

  • const char * LLVMGetBufferStart (LLVMMemoryBufferRef MemBuf)

    Defined at line 4629 of file llvm/lib/IR/Core.cpp

  • size_t LLVMGetBufferSize (LLVMMemoryBufferRef MemBuf)

    Defined at line 4633 of file llvm/lib/IR/Core.cpp

  • void LLVMDisposeMemoryBuffer (LLVMMemoryBufferRef MemBuf)

    Defined at line 4637 of file llvm/lib/IR/Core.cpp

  • LLVMPassManagerRef LLVMCreatePassManager ()

    Constructs a new whole-module pass pipeline. This type of pipeline is

    suitable for link-time optimization and whole-module transformations.

    Defined at line 4643 of file llvm/lib/IR/Core.cpp

  • LLVMPassManagerRef LLVMCreateFunctionPassManagerForModule (LLVMModuleRef M)

    Constructs a new function-by-function pass pipeline over the module

    provider. It does not take ownership of the module provider. This type of

    pipeline is suitable for code generation and JIT compilation tasks.

    Defined at line 4647 of file llvm/lib/IR/Core.cpp

  • LLVMPassManagerRef LLVMCreateFunctionPassManager (LLVMModuleProviderRef MP)

    Deprecated: Use LLVMCreateFunctionPassManagerForModule instead.

    Defined at line 4651 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMRunPassManager (LLVMPassManagerRef PM, LLVMModuleRef M)

    Initializes, executes on the provided module, and finalizes all of the

    passes scheduled in the pass manager. Returns 1 if any of the passes

    modified the module, 0 otherwise.

    Defined at line 4656 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMInitializeFunctionPassManager (LLVMPassManagerRef FPM)

    Initializes all of the function passes scheduled in the function pass

    manager. Returns 1 if any of the passes modified the module, 0 otherwise.

    Defined at line 4660 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMRunFunctionPassManager (LLVMPassManagerRef FPM, LLVMValueRef F)

    Executes all of the function passes scheduled in the function pass manager

    on the provided function. Returns 1 if any of the passes modified the

    function, false otherwise.

    Defined at line 4664 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMFinalizeFunctionPassManager (LLVMPassManagerRef FPM)

    Finalizes all of the function passes scheduled in the function pass

    manager. Returns 1 if any of the passes modified the module, 0 otherwise.

    Defined at line 4668 of file llvm/lib/IR/Core.cpp

  • void LLVMDisposePassManager (LLVMPassManagerRef PM)

    Frees the memory of a pass pipeline. For function pipelines, does not free

    the module provider.

    Defined at line 4672 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMStartMultithreaded ()

    Deprecated: Multi-threading can only be enabled/disabled with the compile

    time define LLVM_ENABLE_THREADS. This function always returns

    LLVMIsMultithreaded().

    Defined at line 4678 of file llvm/lib/IR/Core.cpp

  • void LLVMStopMultithreaded ()

    Deprecated: Multi-threading can only be enabled/disabled with the compile

    time define LLVM_ENABLE_THREADS.

    Defined at line 4682 of file llvm/lib/IR/Core.cpp

  • LLVMBool LLVMIsMultithreaded ()

    Check whether LLVM is executing in thread-safe mode or not.

    Defined at line 4685 of file llvm/lib/IR/Core.cpp

  • bool isReferencingMDNode (const Instruction & I)

    Defined at line 5149 of file llvm/lib/IR/AsmWriter.cpp

  • template <typename T>
    int getEncodedOrdinal (T Value)

    The special library ordinals have a negative value, but they are encoded in

    an unsigned bitfield, so we need to sign extend the value.

    Defined at line 5161 of file llvm/lib/Object/MachOObjectFile.cpp

  • basic_string versionFlagToString (unsigned int Flags)

    Defined at line 5169 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • template <typename T, unsigned N>
    std::array<T, N> getArray (const MachOObjectFile & O, const void * Ptr)

    Defined at line 5170 of file llvm/lib/Object/MachOObjectFile.cpp

  • void print_ivar_list64_t (uint64_t p, struct DisassembleInfo * info)

    Defined at line 5182 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isDivisorPowerOfTwo (SDValue Divisor)

    Defined at line 5187 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool isUsedWithinShuffleVector (Value * V)

    Check if any direct or bitcast user of this value is a shuffle instruction.

    Defined at line 5192 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • const SCEV * getAddressAccessSCEV (Value * Ptr, LoopVectorizationLegality * Legal, PredicatedScalarEvolution & PSE, const Loop * TheLoop)

    Gets Address Access SCEV after verifying that the access pattern

    is loop invariant except the induction variable dependence.

    This SCEV can be sent to the Target in order to estimate the address

    calculation cost.

    Defined at line 5206 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • tuple selectPartitionType (Partition & P, const DataLayout & DL, AllocaInst & AI, LLVMContext & C)

    Select a partition type for an alloca partition.

    Try to compute a friendly type for this partition of the alloca. This

    won't always succeed, in which case we fall back to a legal integer type

    or an i8 array of an appropriate size.

    Defined at line 5236 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • std::pair<X86::CondCode, unsigned int> isUseDefConvertible (const MachineInstr & MI)

    Check whether the use can be converted to remove a comparison against zero.

    Returns the EFLAGS condition and the operand that we are comparing against zero.

    Defined at line 5243 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • SDValue CollectOpsToWiden (SelectionDAG & DAG, const TargetLowering & TLI, SmallVectorImpl<SDValue> & ConcatOps, unsigned int ConcatEnd, EVT VT, EVT MaxVT, EVT WidenVT)

    Given a vector of operations that have been broken up to widen, see

    if we can collect them together into the next widest legal VT. This

    implementation is trap-safe.

    Defined at line 5259 of file llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

  • Expected toULEB128Array (ArrayRef Data)

    Defined at line 5270 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • FunctionCallee getKmpcForStaticLoopForType (Type * Ty, OpenMPIRBuilder * OMPBuilder, WorksharingLoopType LoopType)

    Returns an LLVM function to call for executing an OpenMP static worksharing

    for loop depending on `type`. Only i32 and i64 are supported by the runtime.

    Always interpret integers as unsigned similarly to CanonicalLoopInfo.

    Defined at line 5270 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • Value * simplifyInsertValueInst (Value * Agg, Value * Val, ArrayRef Idxs, const SimplifyQuery & Q, unsigned int )

    Given operands for an InsertValueInst, see if we can fold the result.

    If not, this returns null.

    Defined at line 5278 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool printWithoutType (const Value & V, raw_ostream & O, SlotTracker * Machine, const Module * M)

    Print without a type, skipping the TypePrinting object.

    Returns

    iff printing was successful.

    Defined at line 5281 of file llvm/lib/IR/AsmWriter.cpp

  • void print_ivar_list32_t (uint32_t p, struct DisassembleInfo * info)

    Defined at line 5283 of file llvm/tools/llvm-objdump/MachODump.cpp

  • template <class ELFT>
    Expected decodeAddrsigSection (const ELFFile<ELFT> & Obj, const typename ELFT::Shdr & Sec)

    Defined at line 5286 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void printAsOperandImpl (const Value & V, raw_ostream & O, bool PrintType, ModuleSlotTracker & MST)

    Defined at line 5292 of file llvm/lib/IR/AsmWriter.cpp

  • std::optional<BinaryOp> MatchBinaryOp (Value * V, const DataLayout & DL, AssumptionCache & AC, const DominatorTree & DT, const Instruction * CxtI)

    Try to map

    into a BinaryOp, and return

    on failure.

    Defined at line 5292 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void createTargetLoopWorkshareCall (OpenMPIRBuilder * OMPBuilder, WorksharingLoopType LoopType, BasicBlock * InsertBlock, Value * Ident, Value * LoopBodyArg, Value * TripCount, Function & LoopBodyFn, bool NoLoop)

    Inserts a call to proper OpenMP Device RTL function which handles

    loop worksharing.

    Defined at line 5309 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void writeIdentificationBlock (BitstreamWriter & Stream)

    Create the "IDENTIFICATION_BLOCK_ID" containing a single string with the

    current llvm version, and a record for the epoch number.

    Defined at line 5312 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool IsSimplerBaseSCEVForTarget (const TargetTransformInfo & TTI, ScalarEvolution & SE, const SCEV * Best, const SCEV * Reg, MemAccessTy AccessType)

    Check if Best and Reg are SCEVs separated by a constant amount C, and if so

    would the addressing offset +C would be legal where the negative offset -C is

    not.

    Defined at line 5319 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void printMetadataImplRec (raw_ostream & ROS, const Metadata & MD, AsmWriterContext & WriterCtx)

    Recursive version of printMetadataImpl.

    Defined at line 5324 of file llvm/lib/IR/AsmWriter.cpp

  • bool SoleWriteToDeadLocal (Instruction * I, TargetLibraryInfo & TLI)

    Check for case where the call writes to an otherwise dead alloca. This

    shows up for unused out-params in idiomatic C/C++ code. Note that this

    helper *only* analyzes the write; doesn't check any other legality aspect.

    Defined at line 5326 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • template <class ELFT>
    bool printAArch64PAuthABICoreInfo (raw_ostream & OS, uint32_t DataSize, ArrayRef Desc)

    Defined at line 5328 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void workshareLoopTargetCallback (OpenMPIRBuilder * OMPIRBuilder, CanonicalLoopInfo * CLI, Value * Ident, Function & OutlinedFn, const SmallVector<Instruction *, 4> & ToBeDeleted, WorksharingLoopType LoopType, bool NoLoop)

    Defined at line 5349 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void print_objc_property_list64 (uint64_t p, struct DisassembleInfo * info)

    Defined at line 5351 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Value * simplifyExtractValueInst (Value * Agg, ArrayRef Idxs, const SimplifyQuery & , unsigned int )

    Given operands for an ExtractValueInst, see if we can fold the result.

    If not, this returns null.

    Defined at line 5357 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void printMetadataImpl (raw_ostream & ROS, const Metadata & MD, ModuleSlotTracker & MST, const Module * M, bool OnlyAsOperand, bool PrintAsTree)

    Defined at line 5380 of file llvm/lib/IR/AsmWriter.cpp

  • MVT getPromotedVectorElementType (const TargetLowering & TLI, MVT EltVT, MVT NewEltVT)

    Determine the vector type to use in place of an original scalar element when

    promoting equally sized vectors.

    Defined at line 5381 of file llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

  • bool isConstantIntMetadataOperand (const Metadata * MD)

    Defined at line 5391 of file llvm/lib/IR/Verifier.cpp

  • Type * isSimpleCastedPHI (const SCEV * Op, const SCEVUnknown * SymbolicPHI, bool & Signed, ScalarEvolution & SE)

    Helper function to createAddRecFromPHIWithCasts. We have a phi

    node whose symbolic (unknown) SCEV is

    which is updated via

    the loop backedge by a SCEVAddExpr, possibly also with a few casts on the

    way. This function checks if

    an operand of this SCEVAddExpr,

    follows one of the following patterns:

    Op == (SExt ix (Trunc iy (%SymbolicPHI) to ix) to iy)

    Op == (ZExt ix (Trunc iy (%SymbolicPHI) to ix) to iy)

    If the SCEV expression of

    conforms with one of the expected patterns

    we return the type of the truncation operation, and indicate whether the

    truncated type should be treated as signed/unsigned by setting

    to true/false, respectively.

    Defined at line 5398 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • Value * simplifyExtractElementInst (Value * Vec, Value * Idx, const SimplifyQuery & Q, unsigned int )

    Given operands for an ExtractElementInst, see if we can fold the result.

    If not, this returns null.

    Defined at line 5400 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isCleanupBlockEmpty (iterator_range R)

    Check if cleanup block is empty

    Defined at line 5402 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • template <typename ELFT>
    basic_string getGNUProperty (uint32_t Type, uint32_t DataSize, ArrayRef Data, typename ELFT::Half EMachine)

    Defined at line 5403 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void writeInt32ToBuffer (uint32_t Value, SmallVectorImpl<char> & Buffer, uint32_t & Position)

    Defined at line 5417 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool getTargetShuffleMaskIndices (SDValue MaskNode, unsigned int MaskEltSizeInBits, SmallVectorImpl<uint64_t> & RawMask, APInt & UndefElts)

    Defined at line 5425 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const Loop * isIntegerLoopHeaderPHI (const PHINode * PN, LoopInfo & LI)

    Defined at line 5429 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • uint64_t ComputeHash (const FunctionSummary * FS, unsigned int I)

    Compute a SHA1 hash of the callsite and alloc version information of clone I

    in the summary, to use in detection of duplicate clones.

    Defined at line 5430 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • void print_objc_property_list32 (uint32_t p, struct DisassembleInfo * info)

    Defined at line 5430 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void emitDarwinBCHeaderAndTrailer (SmallVectorImpl<char> & Buffer, const Triple & TT)

    If generating a bc file on darwin, we have to emit a

    header and trailer to make it compatible with the system archiver. To do

    this we emit the following header, and then emit a trailer that pads the

    file out to be a multiple of 16 bytes.

    struct bc_header {

    uint32_t Magic; // 0x0B17C0DE

    uint32_t Version; // Version, currently always 0.

    uint32_t BitcodeOffset; // Offset to traditional bitcode file.

    uint32_t BitcodeSize; // Size of traditional bitcode file.

    uint32_t CPUType; // CPU specifier.

    ... potentially more later ...

    };

    Defined at line 5436 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool isConstantPowerOf2 (SDValue V, unsigned int EltSizeInBIts, bool AllowUndefs)

    Defined at line 5443 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * simplifyPHINode (PHINode * PN, ArrayRef IncomingValues, const SimplifyQuery & Q)

    See if we can fold the given phi. If not, returns null.

    Defined at line 5451 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SDValue IsNOT (SDValue V, SelectionDAG & DAG)

    Helper to attempt to return a cheaper, bit-inverted version of

    Defined at line 5459 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SmallVector createFunctionClones (Function & F, unsigned int NumClones, Module & M, OptimizationRemarkEmitter & ORE, std::map<const Function *, SmallPtrSet<const GlobalAlias *, 1>> & FuncToAliasMap, FunctionSummary * FS)

    Defined at line 5462 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • bool isKillAddress (const DbgVariableRecord * DVR)

    There isn't a shared interface to get the "address" parts out of a

    dbg.declare and dbg.assign, so provide some wrappers.

    Defined at line 5465 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • const DIExpression * getAddressExpression (const DbgVariableRecord * DVR)

    Defined at line 5471 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • void writeBitcodeHeader (BitstreamWriter & Stream)

    Helper to write the header common to all bitcode files.

    Defined at line 5483 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool print_class_ro64_t (uint64_t p, struct DisassembleInfo * info, bool & is_meta_class)

    Defined at line 5485 of file llvm/tools/llvm-objdump/MachODump.cpp

  • DIExpression * createOrReplaceFragment (const DIExpression * Expr, DbgVariableFragmentInfo Frag, int64_t BitExtractOffset)

    Create or replace an existing fragment in a DIExpression with

    If the expression already contains a DW_OP_LLVM_extract_bits_[sz]ext

    operation, add

    to the offset part.

    Returns the new expression, or nullptr if this fails (see details below).

    This function is similar to DIExpression::createFragmentExpression except

    for 3 important distinctions:

    1. The new fragment isn't relative to an existing fragment.

    2. It assumes the computed location is a memory location. This means we

    don't need to perform checks that creating the fragment preserves the

    expression semantics.

    3. Existing extract_bits are modified independently of fragment changes

    using

    A change to the fragment offset or size

    may affect a bit extract. But a bit extract offset can change

    independently of the fragment dimensions.

    Returns the new expression, or nullptr if one couldn't be created.

    Ideally this is only used to signal that a bit-extract has become

    zero-sized (and thus the new debug record has no size and can be

    dropped), however, it fails for other reasons too - see the FIXME below.

    FIXME: To keep the change that introduces this function NFC it bails

    in some situations unecessarily, e.g. when fragment and bit extract

    sizes differ.

    Defined at line 5502 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • bool removeEmptyCleanup (CleanupReturnInst * RI, DomTreeUpdater * DTU)

    Defined at line 5515 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool IsOperandAMemoryOperand (CallInst * CI, InlineAsm * IA, Value * OpVal, const TargetLowering & TLI, const TargetRegisterInfo & TRI)

    Check to see if all uses of OpVal by the specified inline asm call are due

    to memory operands. If so, return true, otherwise return false.

    Defined at line 5522 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • void createPackShuffleMask (MVT VT, SmallVectorImpl<int> & Mask, bool Unary, unsigned int NumStages)

    Create a shuffle mask that matches the PACKSS/PACKUS truncation.

    A multi-stage pack shuffle mask is created by specifying NumStages > 1.

    Note: This ignores saturation, so inputs must be checked first.

    Defined at line 5534 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • template <typename ELFT>
    SmallVector getGNUPropertyList (ArrayRef Arr, typename ELFT::Half EMachine)

    Defined at line 5536 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • SDValue GetSignificand (SelectionDAG & DAG, SDValue Op, const SDLoc & dl)

    GetSignificand - Get the significand and build it into a floating-point

    number with exponent of 1:

    Op = (Op

    &

    0x007fffff) | 0x3f800000;

    where Op is the hexadecimal representation of floating point value.

    Defined at line 5543 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • Value * foldIdentityShuffles (int DestElt, Value * Op0, Value * Op1, int MaskVal, Value * RootVec, unsigned int MaxRecurse)

    For the given destination element of a shuffle, peek through shuffles to

    match a root vector source operand that contains that element in the same

    vector lane (ie, the same mask index), so we can eliminate the shuffle(s).

    Defined at line 5547 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool FindAllMemoryUses (Instruction * I, SmallVectorImpl<std::pair<Use *, Type *>> & MemoryUses, SmallPtrSetImpl<Instruction *> & ConsideredInsts, const TargetLowering & TLI, const TargetRegisterInfo & TRI, bool OptSize, ProfileSummaryInfo * PSI, BlockFrequencyInfo * BFI, unsigned int & SeenInsts)

    Recursively walk all the uses of I until we find a memory use.

    If we find an obviously non-foldable instruction, return true.

    Add accessed addresses and types to MemoryUses.

    Defined at line 5547 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • SDValue GetExponent (SelectionDAG & DAG, SDValue Op, const TargetLowering & TLI, const SDLoc & dl)

    GetExponent - Get the exponent:

    (float)(int)(((Op

    &

    0x7f800000) >> 23) - 127);

    where Op is the hexadecimal representation of floating point value.

    Defined at line 5556 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • void getPackDemandedElts (EVT VT, const APInt & DemandedElts, APInt & DemandedLHS, APInt & DemandedRHS)

    Split the demanded elts of a PACKSS/PACKUS node between its operands.

    Defined at line 5556 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void insertNewDbgInst (DIBuilder & DIB, DbgVariableRecord * Orig, AllocaInst * NewAddr, DIExpression * NewAddrExpr, Instruction * BeforeInst, optional NewFragment, int64_t BitExtractAdjustment)

    Insert a new DbgRecord.

    Original to copy record type, debug loc and variable from, and

    additionally value and value expression for dbg_assign records.

    Location's new base address.

    New expression to apply to address.

    Insert position.

    New fragment (absolute, non-relative).

    Offset to apply to any extract_bits op.

    Defined at line 5566 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • SDValue getF32Constant (SelectionDAG & DAG, unsigned int Flt, const SDLoc & dl)

    getF32Constant - Get 32-bit floating point constant.

    Defined at line 5568 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • FunctionCallee getKmpcForDynamicInitForType (Type * Ty, Module & M, OpenMPIRBuilder & OMPBuilder)

    Returns an LLVM function to call for initializing loop bounds using OpenMP

    dynamic scheduling depending on `type`. Only i32 and i64 are supported by

    the runtime. Always interpret integers as unsigned similarly to

    CanonicalLoopInfo.

    Defined at line 5571 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • template <typename ELFT>
    GNUAbiTag getGNUAbiTag (ArrayRef Desc)

    Defined at line 5572 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • SDValue getLimitedPrecisionExp2 (SDValue t0, const SDLoc & dl, SelectionDAG & DAG)

    Defined at line 5574 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • ValueInfo findValueInfoForFunc (const Function & F, const Module & M, const ModuleSummaryIndex * ImportSummary, const Function * CallingFunc)

    Locate the summary for F. This is complicated by the fact that it might

    have been internalized or promoted.

    Defined at line 5575 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • void getHorizDemandedElts (EVT VT, const APInt & DemandedElts, APInt & DemandedLHS, APInt & DemandedRHS)

    Split the demanded elts of a HADD/HSUB node between its operands.

    Defined at line 5581 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • FunctionCallee getKmpcForDynamicNextForType (Type * Ty, Module & M, OpenMPIRBuilder & OMPBuilder)

    Returns an LLVM function to call for updating the next loop using OpenMP

    dynamic scheduling depending on `type`. Only i32 and i64 are supported by

    the runtime. Always interpret integers as unsigned similarly to

    CanonicalLoopInfo.

    Defined at line 5587 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • Value * simplifyShuffleVectorInst (Value * Op0, Value * Op1, ArrayRef Mask, Type * RetTy, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Defined at line 5592 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • basic_string getGNUBuildId (ArrayRef Desc)

    Defined at line 5594 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool getTargetShuffleMask (SDValue N, bool AllowSentinelZero, SmallVectorImpl<SDValue> & Ops, SmallVectorImpl<int> & Mask, bool & IsUnary)

    Calculates the shuffle mask corresponding to the target-specific opcode.

    If the mask could be calculated, returns it in

    returns the shuffle

    operands in

    and returns true.

    Sets

    to true if only one source is used. Note that this will set

    IsUnary for shuffles which use a single input multiple times, and in those

    cases it will adjust the mask to only have indices within that single input.

    It is an error to call this with non-empty Mask/Ops vectors.

    Defined at line 5596 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • template <typename SubclassT, sandboxir::Instruction::Opcode OpcodeT>
    void testCastInst (llvm::Module & M, llvm::Type * LLVMSrcTy, llvm::Type * LLVMDstTy)

    CastInst's subclasses are very similar so we can use a common test function

    for them.

    Defined at line 5601 of file llvm/unittests/SandboxIR/SandboxIRTest.cpp

  • StringRef getDescAsStringRef (ArrayRef Desc)

    Defined at line 5602 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • FunctionCallee getKmpcForDynamicFiniForType (Type * Ty, Module & M, OpenMPIRBuilder & OMPBuilder)

    Returns an LLVM function to call for finalizing the dynamic loop using

    depending on `type`. Only i32 and i64 are supported by the runtime. Always

    interpret integers as unsigned similarly to CanonicalLoopInfo.

    Defined at line 5602 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • template <typename ELFT>
    bool printGNUNote (raw_ostream & OS, uint32_t NoteType, ArrayRef Desc, typename ELFT::Half EMachine)

    Defined at line 5607 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool print_class_ro32_t (uint32_t p, struct DisassembleInfo * info, bool & is_meta_class)

    Defined at line 5619 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool mergeCleanupPad (CleanupReturnInst * RI)

    Try to merge two cleanuppads together.

    Defined at line 5632 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool FindAllMemoryUses (Instruction * I, SmallVectorImpl<std::pair<Use *, Type *>> & MemoryUses, const TargetLowering & TLI, const TargetRegisterInfo & TRI, bool OptSize, ProfileSummaryInfo * PSI, BlockFrequencyInfo * BFI)

    Defined at line 5633 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • vector getAndroidNoteProperties (uint32_t NoteType, ArrayRef Desc)

    Defined at line 5639 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • SDValue expandExp (const SDLoc & dl, SDValue Op, SelectionDAG & DAG, const TargetLowering & TLI, SDNodeFlags Flags)

    expandExp - Lower an exp intrinsic. Handles the special sequences for

    limited-precision mode.

    Defined at line 5664 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • void checkAllocContextIds (const AllocInfo & AllocNode, const MDNode * MemProfMD, const CallStack<MDNode, MDNode::op_iterator> & CallsiteContext, const ModuleSummaryIndex * ImportSummary)

    Sanity check that the MIB stack ids match between the summary and

    instruction metadata.

    Defined at line 5665 of file llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp

  • bool printAndroidNote (raw_ostream & OS, uint32_t NoteType, ArrayRef Desc)

    Defined at line 5677 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void print_class64_t (uint64_t p, struct DisassembleInfo * info)

    Defined at line 5683 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void upgradeNVVMFnVectorAttr (StringRef Attr, const char DimC, GlobalValue * GV, const Metadata * V)

    Defined at line 5684 of file llvm/lib/IR/AutoUpgrade.cpp

  • SDValue expandLog (const SDLoc & dl, SDValue Op, SelectionDAG & DAG, const TargetLowering & TLI, SDNodeFlags Flags)

    expandLog - Lower a log intrinsic. Handles the special sequences for

    limited-precision mode.

    Defined at line 5686 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • bool canConvert2Copy (unsigned int Opc)

    Defined at line 5691 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • unsigned int convertALUrr2ALUri (unsigned int Opc)

    Convert an ALUrr opcode to corresponding ALUri opcode. Such as

    ADD32rr ==> ADD32ri

    Defined at line 5709 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • Constant * foldConstant (UnaryOps Opcode, Value *& Op, const SimplifyQuery & Q)

    Defined at line 5714 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • template <typename ELFT>
    bool printLLVMOMPOFFLOADNote (raw_ostream & OS, uint32_t NoteType, ArrayRef Desc)

    Defined at line 5716 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool isXYZ (StringRef S)

    Defined at line 5717 of file llvm/lib/IR/AutoUpgrade.cpp

  • bool upgradeSingleNVVMAnnotation (GlobalValue * GV, StringRef K, const Metadata * V)

    Defined at line 5721 of file llvm/lib/IR/AutoUpgrade.cpp

  • Value * simplifyFNegInst (Value * Op, FastMathFlags FMF, const SimplifyQuery & Q, unsigned int MaxRecurse)

    Given the operand for an FNeg, see if we can fold the result. If not, this

    returns null.

    Defined at line 5723 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • int rewritesSort (const AsmRewrite * AsmRewriteA, const AsmRewrite * AsmRewriteB)

    We are comparing pointers, but the pointers are relative to a single string.

    Thus, this should always be deterministic.

    Defined at line 5732 of file llvm/lib/MC/MCParser/MasmParser.cpp

  • Constant * propagateNaN (Constant * In)

    Try to propagate existing NaN values when possible. If not, replace the

    constant or elements in the constant with a canonical NaN.

    Defined at line 5743 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void redirectAllPredecessorsTo (BasicBlock * OldTarget, BasicBlock * NewTarget, DebugLoc DL)

    Redirect all edges that branch to

    to

    That is,

    after this

    will be orphaned.

    Defined at line 5749 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • template <typename ELFT>
    optional getFreeBSDNote (uint32_t NoteType, ArrayRef Desc, bool IsCore)

    Defined at line 5750 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void removeUnusedBlocksFromParent (ArrayRef BBs)

    Determine which blocks in

    are reachable from outside and remove the

    ones that are not reachable from the function.

    Defined at line 5757 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void print_class32_t (uint32_t p, struct DisassembleInfo * info)

    Defined at line 5764 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool IsNonLocalValue (Value * V, BasicBlock * BB)

    Return true if the specified values are defined in a

    different basic block than BB.

    Defined at line 5779 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • Constant * simplifyFPOp (ArrayRef Ops, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Perform folds that are common to any floating-point operation. This implies

    transforms based on poison/undef/NaN because the operation itself makes no

    difference to the result.

    Defined at line 5785 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SDValue expandLog2 (const SDLoc & dl, SDValue Op, SelectionDAG & DAG, const TargetLowering & TLI, SDNodeFlags Flags)

    expandLog2 - Lower a log2 intrinsic. Handles the special sequences for

    limited-precision mode.

    Defined at line 5785 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • template <typename ELFT>
    AMDNote getAMDNote (uint32_t NoteType, ArrayRef Desc)

    Defined at line 5786 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • ilist_iterator_w_bits findInsertPos (Value * Addr, Instruction * MemoryInst, Value * SunkAddr)

    Find an insert position of Addr for MemoryInst. We can't guarantee MemoryInst

    is the first instruction that will use Addr. So we need to find the first

    user of Addr in current BB.

    Defined at line 5788 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • const char * getSectionNameForBitcode (const Triple & T)

    Defined at line 5820 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • bool upgradeRetainReleaseMarker (Module & M)

    This checks for objc retain release marker which should be upgraded. It

    returns true if module is modified.

    Defined at line 5823 of file llvm/lib/IR/AutoUpgrade.cpp

  • Instruction * foldICmpPow2Test (ICmpInst & I, InstCombiner::BuilderTy & Builder)

    Canonicalize checking for a power-of-2-or-zero value:

    Defined at line 5824 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • Value * simplifyFAddInst (Value * Op0, Value * Op1, FastMathFlags FMF, const SimplifyQuery & Q, unsigned int MaxRecurse, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Given operands for an FAdd, see if we can fold the result. If not, this

    returns null.

    Defined at line 5826 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void print_objc_class_t (struct objc_class_t * objc_class, struct DisassembleInfo * info)

    Defined at line 5830 of file llvm/tools/llvm-objdump/MachODump.cpp

  • const char * getSectionNameForCommandline (const Triple & T)

    Defined at line 5847 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp

  • int rewritesSort (const AsmRewrite * AsmRewriteA, const AsmRewrite * AsmRewriteB)

    We are comparing pointers, but the pointers are relative to a single string.

    Thus, this should always be deterministic.

    Defined at line 5857 of file llvm/lib/MC/MCParser/AsmParser.cpp

  • optional findContiguousCases (Value * Condition, SmallVectorImpl<ConstantInt *> & Cases, SmallVectorImpl<ConstantInt *> & OtherCases, BasicBlock * Dest, BasicBlock * OtherDest)

    Defined at line 5873 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void collectOffsetOp (Value * V, SmallVectorImpl<OffsetOp> & Offsets, bool AllowRecursion)

    Defined at line 5878 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • SDValue expandLog10 (const SDLoc & dl, SDValue Op, SelectionDAG & DAG, const TargetLowering & TLI, SDNodeFlags Flags)

    expandLog10 - Lower a log10 intrinsic. Handles the special sequences for

    limited-precision mode.

    Defined at line 5882 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • template <typename ELFT>
    AMDGPUNote getAMDGPUNote (uint32_t NoteType, ArrayRef Desc)

    Defined at line 5890 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • Value * simplifyFSubInst (Value * Op0, Value * Op1, FastMathFlags FMF, const SimplifyQuery & Q, unsigned int MaxRecurse, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Given operands for an FSub, see if we can fold the result. If not, this

    returns null.

    Defined at line 5892 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void createUnreachableSwitchDefault (SwitchInst * Switch, DomTreeUpdater * DTU, bool RemoveOrigDefaultBlock)

    Defined at line 5926 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Expected readCoreNote (DataExtractor Desc)

    Defined at line 5936 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool getTargetShuffleMask (SDValue N, bool AllowSentinelZero, SmallVectorImpl<SDValue> & Ops, SmallVectorImpl<int> & Mask)

    Wrapper for getTargetShuffleMask with InUnary;

    Defined at line 5945 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool Expand2AddrUndef (MachineInstrBuilder & MIB, const MCInstrDesc & Desc)

    Expand a single-def pseudo instruction to a two-addr

    instruction with two undef reads of the register being defined.

    This is used for mapping:

    %xmm4 = V_SET0

    to:

    %xmm4 = PXORrr undef %xmm4, undef %xmm4

    Defined at line 5945 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • Instruction * foldICmpEqualityWithOffset (ICmpInst & I, InstCombiner::BuilderTy & Builder, const SimplifyQuery & SQ)

    Offset both sides of an equality icmp to see if we can save some

    instructions: icmp eq/ne X, Y -> icmp eq/ne X op Z, Y op Z.

    Note: This operation should not introduce poison.

    Defined at line 5945 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void print_objc_objc_category_t (struct objc_category_t * objc_category, struct DisassembleInfo * info)

    Defined at line 5949 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Value * simplifyFMAFMul (Value * Op0, Value * Op1, FastMathFlags FMF, const SimplifyQuery & Q, unsigned int MaxRecurse, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Defined at line 5959 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void computeZeroableShuffleElements (ArrayRef<int> Mask, SDValue V1, SDValue V2, APInt & KnownUndef, APInt & KnownZero)

    Compute whether each element of a shuffle is zeroable.

    A "zeroable" vector shuffle element is one which can be lowered to zero.

    Either it is an undef element in the shuffle mask, the element of the input

    referenced is undef, or the element of the input referenced is known to be

    zero. Many x86 shuffles can zero lanes cheaply and we often want to handle

    as many lanes with this technique as possible to simplify the remaining

    shuffle.

    Defined at line 5960 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool Expand2AddrKreg (MachineInstrBuilder & MIB, const MCInstrDesc & Desc, Register Reg)

    Expand a single-def pseudo instruction to a two-addr

    instruction with two %k0 reads.

    This is used for mapping:

    %k4 = K_SET1

    to:

    %k4 = KXNORrr %k0, %k0

    Defined at line 5965 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • SDValue expandExp2 (const SDLoc & dl, SDValue Op, SelectionDAG & DAG, const TargetLowering & TLI, SDNodeFlags Flags)

    expandExp2 - Lower an exp2 intrinsic. Handles the special sequences for

    limited-precision mode.

    Defined at line 5972 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • bool expandMOV32r1 (MachineInstrBuilder & MIB, const TargetInstrInfo & TII, bool MinusOne)

    Defined at line 5973 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool combineInstructionsOverFunction (Function & F, InstructionWorklist & Worklist, AliasAnalysis * AA, AssumptionCache & AC, TargetLibraryInfo & TLI, TargetTransformInfo & TTI, DominatorTree & DT, OptimizationRemarkEmitter & ORE, BlockFrequencyInfo * BFI, BranchProbabilityInfo * BPI, ProfileSummaryInfo * PSI, const InstCombineOptions & Opts)

    Defined at line 5980 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • SDValue expandPow (const SDLoc & dl, SDValue LHS, SDValue RHS, SelectionDAG & DAG, const TargetLowering & TLI, SDNodeFlags Flags)

    visitPow - Lower a pow intrinsic. Handles the special sequences for

    limited-precision mode with x == 10.0f.

    Defined at line 5984 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • template <typename ELFT>
    void printCoreNote (raw_ostream & OS, const CoreNote & Note)

    Defined at line 5987 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool BrPHIToSelect (DominatorTree & DT, BranchInst * BI, PHINode * Merge, Value *& C, Value *& LHS, Value *& RHS)

    Try to match a control flow sequence that branches out at BI and merges back

    at Merge into a "C ? LHS : RHS" select pattern. Return true on a successful

    match.

    Defined at line 5988 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void checkSwapOperands (sandboxir::Context & Ctx, llvm::sandboxir::CmpInst * Cmp, llvm::CmpInst * LLVMCmp)

    Defined at line 5989 of file llvm/unittests/SandboxIR/SandboxIRTest.cpp

  • void print_category64_t (uint64_t p, struct DisassembleInfo * info)

    Defined at line 5990 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool ExpandMOVImmSExti8 (MachineInstrBuilder & MIB, const TargetInstrInfo & TII, const X86Subtarget & Subtarget)

    Defined at line 5991 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void checkCommonPredicates (sandboxir::CmpInst * Cmp, llvm::CmpInst * LLVMCmp)

    Defined at line 6007 of file llvm/unittests/SandboxIR/SandboxIRTest.cpp

  • Value * simplifyFMulInst (Value * Op0, Value * Op1, FastMathFlags FMF, const SimplifyQuery & Q, unsigned int MaxRecurse, ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Given the operands for an FMul, see if we can fold the result

    Defined at line 6009 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SDValue ExpandPowI (const SDLoc & DL, SDValue LHS, SDValue RHS, SelectionDAG & DAG)

    ExpandPowI - Expand a llvm.powi intrinsic.

    Defined at line 6013 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • SDValue isSaturatingMinMax (SDValue N0, SDValue N1, SDValue N2, SDValue N3, CondCode CC, unsigned int & BW, bool & Unsigned, SelectionDAG & DAG)

    Function to calculate whether the Min/Max pair of SDNodes (potentially

    swapped around) make a signed saturate pattern, clamping to between a signed

    saturate of -2^(BW-1) and 2^(BW-1)-1, or an unsigned saturate of 0 and 2^BW.

    Returns the node being clamped and the bitwidth of the clamp in BW. Should

    work with both SMIN/SMAX nodes and setcc/select combo. The operands are the

    same as SimplifySelectCC. N0

    <N1

    ? N2 : N3.

    Defined at line 6013 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Instruction * getFixupInsertPos (const TargetTransformInfo & TTI, const LSRFixup & Fixup, const LSRUse & LU, Instruction * IVIncInsertPos, DominatorTree & DT)

    Determine where to insert the transformed IV increment instruction for this

    fixup. By default this is the default insert position, but if this is a

    postincrement opportunity then we try to insert it in the same block as the

    fixup user instruction, as this is needed for a postincrement instruction to

    be generated.

    Defined at line 6041 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool getTargetShuffleAndZeroables (SDValue N, SmallVectorImpl<int> & Mask, SmallVectorImpl<SDValue> & Ops, APInt & KnownUndef, APInt & KnownZero)

    Decode a target shuffle mask and inputs and see if any values are

    known to be undef or zero from their inputs.

    Returns true if the target shuffle mask was decoded.

    FIXME: Merge this with computeZeroableShuffleElements?

    Defined at line 6043 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void expandLoadStackGuard (MachineInstrBuilder & MIB, const TargetInstrInfo & TII)

    LoadStackGuard has so far only been implemented for 64-bit MachO. Different

    code sequence is needed for other targets.

    Defined at line 6051 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • Value * simplifyFDivInst (Value * Op0, Value * Op1, FastMathFlags FMF, const SimplifyQuery & Q, unsigned int , ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Defined at line 6054 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SDValue expandDivFix (unsigned int Opcode, const SDLoc & DL, SDValue LHS, SDValue RHS, SDValue Scale, SelectionDAG & DAG, const TargetLowering & TLI)

    Defined at line 6064 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • bool expandXorFP (MachineInstrBuilder & MIB, const TargetInstrInfo & TII)

    Defined at line 6077 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool expandNOVLXLoad (MachineInstrBuilder & MIB, const TargetRegisterInfo * TRI, const MCInstrDesc & LoadDesc, const MCInstrDesc & BroadcastDesc, unsigned int SubIdx)

    This is used to handle spills for 128/256-bit registers when we have AVX512,

    but not VLX. If it uses an extended register we need to use an instruction

    that loads the lower 128/256-bit, but is available with only AVX512F.

    Defined at line 6092 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void addBasicBlockMetadata (BasicBlock * BB, ArrayRef Properties)

    Attach metadata

    to the basic block described by

    If the

    basic block already has metadata, the basic block properties are appended.

    Defined at line 6101 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool SCEVMinMaxExprContains (const SCEV * Root, const SCEV * OperandToFind, SCEVTypes RootKind)

    Defined at line 6107 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void print_category32_t (uint32_t p, struct DisassembleInfo * info)

    Defined at line 6110 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool eliminateDeadSwitchCases (SwitchInst * SI, DomTreeUpdater * DTU, AssumptionCache * AC, const DataLayout & DL)

    Compute masked bits for the condition of a switch

    and use it to remove dead cases.

    Defined at line 6110 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Value * simplifyFRemInst (Value * Op0, Value * Op1, FastMathFlags FMF, const SimplifyQuery & Q, unsigned int , ExceptionBehavior ExBehavior, RoundingMode Rounding)

    Defined at line 6113 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool expandNOVLXStore (MachineInstrBuilder & MIB, const TargetRegisterInfo * TRI, const MCInstrDesc & StoreDesc, const MCInstrDesc & ExtractDesc, unsigned int SubIdx)

    This is used to handle spills for 128/256-bit registers when we have AVX512,

    but not VLX. If it uses an extended register we need to use an instruction

    that stores the lower 128/256-bit, but is available with only AVX512F.

    Defined at line 6114 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • SDValue PerformMinMaxFpToSatCombine (SDValue N0, SDValue N1, SDValue N2, SDValue N3, CondCode CC, SelectionDAG & DAG)

    Defined at line 6116 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • unsigned int getConstraintPiority (ConstraintType CT)

    Return a number indicating our preference for chosing a type of constraint

    over another, for the purpose of sorting them. Immediates are almost always

    preferrable (when they can be emitted). A higher return value means a

    stronger preference for one constraint type relative to another.

    FIXME: We should prefer registers over memory but doing so may lead to

    unrecoverable register exhaustion later.

    https://github.com/llvm/llvm-project/issues/20571

    Defined at line 6117 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • void addLoopMetadata (CanonicalLoopInfo * Loop, ArrayRef Properties)

    Attach loop metadata

    to the loop described by

    If the

    loop already has metadata, the loop properties are appended.

    Defined at line 6125 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void getUnderlyingArgRegs (SmallVectorImpl<std::pair<Register, TypeSize>> & Regs, const SDValue & N)

    getUnderlyingArgRegs - Find underlying registers used for a truncated,

    bitcasted, or split argument. Returns a list of

    <Register

    , size in bits>

    Defined at line 6126 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • bool expandSHXDROT (MachineInstrBuilder & MIB, const MCInstrDesc & Desc)

    Defined at line 6135 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void addAccessGroupMetadata (BasicBlock * Block, MDNode * AccessGroup, LoopInfo & LI)

    Attach llvm.access.group metadata to the memref instructions of

    Defined at line 6136 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • SDValue PerformUMinFpToSatCombine (SDValue N0, SDValue N1, SDValue N2, SDValue N3, CondCode CC, SelectionDAG & DAG)

    Defined at line 6138 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void resolveTargetShuffleFromZeroables (SmallVectorImpl<int> & Mask, const APInt & KnownUndef, const APInt & KnownZero, bool ResolveKnownZeros)

    Replace target shuffle mask elements with known undef/zero sentinels.

    Defined at line 6145 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool expandMOVSHP (MachineInstrBuilder & MIB, MachineInstr & MI, const TargetInstrInfo & TII, bool HasAVX)

    Defined at line 6147 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void initializeInstructionCombiningPassPassOnce (PassRegistry & Registry)

    Defined at line 6154 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp

  • Value * simplifyUnOp (unsigned int , Value * , const SimplifyQuery & , unsigned int )

    Given the operand for a UnaryOperator, see if we can fold the result.

    If not, this returns null.

    Defined at line 6155 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void print_message_refs64 (SectionRef S, struct DisassembleInfo * info)

    Defined at line 6156 of file llvm/tools/llvm-objdump/MachODump.cpp

  • template <class ELFT>
    StringRef getNoteTypeName (const typename ELFT::Note & Note, unsigned int ELFType)

    Defined at line 6161 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • void resolveZeroablesFromTargetShuffle (const SmallVectorImpl<int> & Mask, APInt & KnownUndef, APInt & KnownZero)

    Extract target shuffle mask sentinel elements to known undef/zero bitmasks.

    Defined at line 6162 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * simplifyFPUnOp (unsigned int , Value * , const FastMathFlags & , const SimplifyQuery & , unsigned int )

    Given the operand for a UnaryOperator, see if we can fold the result.

    If not, this returns null.

    Try to use FastMathFlags when folding the result.

    Defined at line 6168 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool createShuffleMaskFromVSELECT (SmallVectorImpl<int> & Mask, SDValue Cond, bool IsBLENDV)

    Attempt to create a shuffle mask from a VSELECT/BLENDV condition mask.

    Defined at line 6178 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * simplifyBinOp (unsigned int , Value * , Value * , const SimplifyQuery & , unsigned int )

    Given operands for a BinaryOperator, see if we can fold the result.

    If not, this returns null.

    Defined at line 6190 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isContractableFMul (MachineInstr & MI, bool AllowFusionGlobally)

    Checks if

    is TargetOpcode::G_FMUL and contractable either

    due to global flags or MachineInstr flags.

    Defined at line 6197 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • bool hasMoreUses (const MachineInstr & MI0, const MachineInstr & MI1, const MachineRegisterInfo & MRI)

    Defined at line 6203 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • template <class ELFT>
    void processNotesHelper (const ELFDumper<ELFT> & Dumper, llvm::function_ref<void (std::optional<StringRef>, typename ELFT::Off, typename ELFT::Addr, size_t)> StartNotesFn, llvm::function_ref<Error (const typename ELFT::Note &, bool)> ProcessNoteFn, function_ref FinishNotesFn)

    Defined at line 6212 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool getFauxShuffleMask (SDValue N, const APInt & DemandedElts, SmallVectorImpl<int> & Mask, SmallVectorImpl<SDValue> & Ops, const SelectionDAG & DAG, unsigned int Depth, bool ResolveKnownElts)

    Attempt to decode ops that could be represented as a shuffle mask.

    The decoded shuffle mask may contain a different number of elements to the

    destination value type.

    TODO: Merge into getTargetShuffleInputs()

    Defined at line 6217 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • PHINode * findPHIForConditionForwarding (ConstantInt * CaseValue, BasicBlock * BB, int * PhiIndex)

    If BB would be eligible for simplification by

    TryToSimplifyUncondBranchFromEmptyBlock (i.e. it is empty and terminated

    by an unconditional branch), look at the phi node for BB in the successor

    block and see if the incoming value is equal to CaseValue. If so, return

    the phi node, and set PhiIndex to BB's index in the phi node.

    Defined at line 6225 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void print_message_refs32 (SectionRef S, struct DisassembleInfo * info)

    Defined at line 6226 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void setFunctionAttrIfNotSet (Function & F, StringRef FnAttrName, StringRef Value)

    Check if the function attribute is not present and set it.

    Defined at line 6228 of file llvm/lib/IR/AutoUpgrade.cpp

  • void ConvertFunctionAttr (Function & F, bool Set, StringRef FnAttrName)

    Check if the function attribute is not present and set it if needed.

    If the attribute is "false" then removes it.

    If the attribute is "true" resets it to a valueless attribute.

    Defined at line 6237 of file llvm/lib/IR/AutoUpgrade.cpp

  • void initializeSROALegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 6239 of file llvm/lib/Transforms/Scalar/SROA.cpp

  • Value * simplifyBinOp (unsigned int , Value * , Value * , const FastMathFlags & , const SimplifyQuery & , unsigned int )

    Given operands for a BinaryOperator, see if we can fold the result.

    If not, this returns null.

    Try to use FastMathFlags when folding the result.

    Defined at line 6241 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void reorderReuses (SmallVectorImpl<int> & Reuses, ArrayRef Mask)

    Reorders the given

    mask according to the given

    contains original mask for the scalars reused in the node. Procedure

    transform this mask in accordance with the given

    Defined at line 6248 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • std::optional<const SCEV *> createNodeForSelectViaUMinSeq (ScalarEvolution * SE, const SCEV * CondExpr, const SCEV * TrueExpr, const SCEV * FalseExpr)

    Defined at line 6250 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool forwardSwitchConditionToPHI (SwitchInst * SI)

    Try to forward the condition of a switch instruction to a phi node

    dominated by the switch, if that would mean that some of the destination

    blocks of the switch can be folded away. Return true if a change is made.

    Defined at line 6256 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool haveNoCommonBitsSetCommutative (SDValue A, SDValue B)

    Defined at line 6257 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void reorderOrder (SmallVectorImpl<unsigned int> & Order, ArrayRef Mask, bool BottomOrder)

    Reorders the given

    according to the given

    - is

    the original order of the scalars. Procedure transforms the provided order

    in accordance with the given

    If the resulting

    is just an

    identity order,

    is cleared.

    Defined at line 6262 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool lowerImmediateIfPossible (TargetLowering::ConstraintPair & P, SDValue Op, SelectionDAG * DAG, const TargetLowering & TLI)

    If we have an immediate, see if we can lower it. Return true if we can,

    false otherwise.

    Defined at line 6263 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • Value * simplifyCmpInst (CmpPredicate , Value * , Value * , const SimplifyQuery & , unsigned int )

    Given operands for a CmpInst, see if we can fold the result.

    Defined at line 6269 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void print_image_info64 (SectionRef S, struct DisassembleInfo * info)

    Defined at line 6277 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isIdempotent (Intrinsic::ID ID)

    Defined at line 6281 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • std::optional<const SCEV *> createNodeForSelectViaUMinSeq (ScalarEvolution * SE, Value * Cond, Value * TrueVal, Value * FalseVal)

    Defined at line 6283 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • SDValue FoldSTEP_VECTOR (const SDLoc & DL, EVT VT, SDValue Step, SelectionDAG & DAG)

    Defined at line 6300 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool removesFPFraction (Intrinsic::ID ID)

    Return true if the intrinsic rounds a floating-point value to an integral

    floating-point value (not an integer type).

    Defined at line 6303 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SDValue FoldBUILD_VECTOR (const SDLoc & DL, EVT VT, ArrayRef<SDValue> Ops, SelectionDAG & DAG)

    Defined at line 6308 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool validLookupTableConstant (Constant * C, const TargetTransformInfo & TTI)

    Return true if the backend will be able to handle

    initializing an array of constants like C.

    Defined at line 6314 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool isLegalMaskedLoadStore (Type * ScalarTy, const X86Subtarget * ST)

    Defined at line 6318 of file llvm/lib/Target/X86/X86TargetTransformInfo.cpp

  • Value * simplifyRelativeLoad (Constant * Ptr, Constant * Offset, const DataLayout & DL)

    Defined at line 6319 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void print_image_info32 (SectionRef S, struct DisassembleInfo * info)

    Defined at line 6340 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue BuildExactSDIV (const TargetLowering & TLI, SDNode * N, const SDLoc & dl, SelectionDAG & DAG, SmallVectorImpl<SDNode *> & Created)

    Given an exact SDIV by a constant, create a multiplication

    with the multiplicative inverse of the constant.

    Ref: "Hacker's Delight" by Henry Warren, 2nd Edition, p. 242

    Defined at line 6340 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • Constant * lookupConstant (Value * V, const SmallDenseMap<Value *, Constant *> & ConstantPool)

    If V is a Constant, return it. Otherwise, try to look up

    its constant value in ConstantPool, returning 0 if it's not there.

    Defined at line 6341 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool isOldLoopArgument (Metadata * MD)

    Defined at line 6341 of file llvm/lib/IR/AutoUpgrade.cpp

  • SDValue foldCONCAT_VECTORS (const SDLoc & DL, EVT VT, ArrayRef<SDValue> Ops, SelectionDAG & DAG)

    Try to simplify vector concatenation to an input value, undef, or build

    vector.

    Defined at line 6344 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • MDString * upgradeLoopTag (LLVMContext & C, StringRef OldTag)

    Defined at line 6353 of file llvm/lib/IR/AutoUpgrade.cpp

  • Constant * constantFold (Instruction * I, const DataLayout & DL, const SmallDenseMap<Value *, Constant *> & ConstantPool)

    Try to fold instruction I into a constant. This works for

    simple instructions such as binary operations where both operands are

    constant or can be replaced by constants from the ConstantPool. Returns the

    resulting constant on success, 0 otherwise.

    Defined at line 6353 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Metadata * upgradeLoopArgument (Metadata * MD)

    Defined at line 6365 of file llvm/lib/IR/AutoUpgrade.cpp

  • Value * simplifyLdexp (Value * Op0, Value * Op1, const SimplifyQuery & Q, bool IsStrict)

    TODO: Need to pass in FastMathFlags

    Defined at line 6372 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • int createTargetMachine (Function * F, CodeGenOptLevel OptLevel)

    Create the TargetMachine object to query the backend for optimization

    preferences.

    Ideally, this would be passed from the front-end to the OpenMPBuilder, but

    e.g. Clang does not pass it to its CodeGen layer and creates it only when

    needed for the LLVM pass pipline. We use some default options to avoid

    having to pass too many settings from the frontend that probably do not

    matter.

    Currently, TargetMachine is only used sometimes by the unrollLoopPartial

    method. If we are going to use TargetMachine for more purposes, especially

    those that are sensitive to TargetOptions, RelocModel and CodeModel, it

    might become be worth requiring front-ends to pass on their TargetMachine,

    or at least cache it between methods. Note that while fontends such as Clang

    have just a single main TargetMachine per translation unit, "target-cpu" and

    "target-features" that determine the TargetMachine are per-function and can

    be overrided using __attribute__((target("OPTIONS"))).

    Defined at line 6375 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool getCaseResults (SwitchInst * SI, ConstantInt * CaseVal, BasicBlock * CaseDest, BasicBlock ** CommonDest, SmallVectorImpl<std::pair<PHINode *, Constant *>> & Res, const DataLayout & DL, const TargetTransformInfo & TTI)

    Try to determine the resulting constant values in phi nodes

    at the common destination basic block, *CommonDest, for one of the case

    destionations CaseDest corresponding to value CaseVal (0 for the default

    case), of a switch instruction SI.

    Defined at line 6382 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • int32_t computeHeuristicUnrollFactor (CanonicalLoopInfo * CLI)

    Heuristically determine the best-performant unroll factor for

    This

    depends on the target processor. We are re-using the same heuristics as the

    LoopUnrollPass.

    Defined at line 6397 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void print_image_info (SectionRef S, struct DisassembleInfo * info)

    Defined at line 6398 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool matchOverflowPattern (Instruction *& I, ExtractValueInst *& MulExtract, ExtractValueInst *& OverflowExtract)

    This is a helper for CodeGenPrepare::optimizeMulWithOverflow.

    Check the pattern we are interested in where there are maximum 2 uses

    of the intrinsic which are the extract instructions.

    Defined at line 6402 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • SDValue BuildExactUDIV (const TargetLowering & TLI, SDNode * N, const SDLoc & dl, SelectionDAG & DAG, SmallVectorImpl<SDNode *> & Created)

    Given an exact UDIV by a constant, create a multiplication

    with the multiplicative inverse of the constant.

    Ref: "Hacker's Delight" by Henry Warren, 2nd Edition, p. 242

    Defined at line 6402 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • unsigned int FixedPointIntrinsicToOpcode (unsigned int Intrinsic)

    Defined at line 6405 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • Value * simplifyUnaryIntrinsic (Function * F, Value * Op0, const SimplifyQuery & Q, const CallBase * Call)

    Defined at line 6421 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • const CallBase * FindPreallocatedCall (const Value * PreallocatedSetup)

    Given a

    .call.preallocated.setup, return the corresponding

    preallocated call.

    Defined at line 6430 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • void printObjc2_64bit_MetaData (MachOObjectFile * O, bool verbose)

    Defined at line 6438 of file llvm/tools/llvm-objdump/MachODump.cpp

  • size_t mapCaseToResult (ConstantInt * CaseVal, SwitchCaseResultVectorTy & UniqueResults, Constant * Result)

    Helper function used to add CaseVal to the list of cases that generate

    Result. Returns the updated number of cases that generate this result.

    Defined at line 6454 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool hasPartialRegUpdate (unsigned int Opcode, const X86Subtarget & Subtarget, bool ForLoadFold)

    Return true for all instructions that only update

    the first 32 or 64-bits of the destination register and leave the rest

    unmodified. This can be used to avoid folding loads if the instructions

    only update part of the destination register, and the non-updated part is

    not needed. e.g. cvtss2sd, sqrtss. Unfolding the load from these

    instructions breaks the partial register dependency and it can improve

    performance. e.g.:

    movss (%rdi), %xmm0

    cvtss2sd %xmm0, %xmm0

    Instead of

    cvtss2sd (%rdi), %xmm0

    FIXME: This should be turned into a TSFlags.

    Defined at line 6457 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool initializeUniqueCases (SwitchInst * SI, PHINode *& PHI, BasicBlock *& CommonDest, SwitchCaseResultVectorTy & UniqueResults, Constant *& DefaultResult, const DataLayout & DL, const TargetTransformInfo & TTI, uintptr_t MaxUniqueResults)

    Helper function that initializes a map containing

    results for the PHI node of the common destination block for a switch

    instruction. Returns false if multiple PHI nodes have been found or if

    there is not a common destination block for the switch.

    Defined at line 6472 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • optional GetRangeFromMetadata (Value * V)

    Helper method to assign a range to V from metadata present in the IR.

    Defined at line 6473 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool arePointersCompatible (Value * Ptr1, Value * Ptr2, const TargetLibraryInfo & TLI, bool CompareOpcodes)

    Defined at line 6492 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • Value * BuildSubAggregate (Value * From, Value * To, Type * IndexedType, SmallVectorImpl<unsigned int> & Idxs, unsigned int IdxSkip, ilist_iterator_w_bits InsertBefore)

    This is the recursive version of BuildSubAggregate. It takes a few different

    arguments. Idxs is the index within the nested struct From that we are

    looking at now (which is of type IndexedType). IdxSkip is the number of

    indices from Idxs that should be left out when inserting into the resulting

    struct. To is the result struct built so far, new insertvalue instructions

    build on that.

    Defined at line 6501 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isNeutralValue (BinaryOps BinaryOp, Value * RHS, bool IsSigned)

    Defined at line 6503 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • template <typename T>
    Align computeCommonAlignment (ArrayRef VL)

    Calculates minimal alignment as a common alignment.

    Defined at line 6511 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isReverseOrder (ArrayRef Order)

    Check if

    represents reverse order.

    Defined at line 6519 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void printObjc2_32bit_MetaData (MachOObjectFile * O, bool verbose)

    Defined at line 6519 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Value * foldSwitchToSelect (const SwitchCaseResultVectorTy & ResultVector, Constant * DefaultResult, Value * Condition, IRBuilder<> & Builder, const DataLayout & DL, ArrayRef BranchWeights)

    Helper function that checks if it is possible to transform a switch with only

    two cases (or two cases + default) that produces a result into a select.

    TODO: Handle switches with more than 2 cases that map to the same result.

    The branch weights correspond to the provided Condition (i.e. if Condition is

    modified from the original SwitchInst, the caller must adjust the weights)

    Defined at line 6527 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Value * foldMinMaxSharedOp (Intrinsic::ID IID, Value * Op0, Value * Op1)

    Given a min/max intrinsic, see if it can be removed based on having an

    operand that is another min/max intrinsic with shared operand(s). The caller

    is expected to swap the operand arguments to handle commutation.

    Defined at line 6530 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • const SCEV * calculateRtStride (ArrayRef PointerOps, Type * ElemTy, const DataLayout & DL, ScalarEvolution & SE, SmallVectorImpl<unsigned int> & SortedIndices)

    Checks if the provided list of pointers

    represents the strided

    pointers for type ElemTy. If they are not, nullptr is returned.

    Otherwise, SCEV* of the stride value is returned.

    Defined at line 6531 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • Value * foldMinimumMaximumSharedOp (Intrinsic::ID IID, Value * Op0, Value * Op1)

    Given a min/max intrinsic, see if it can be removed based on having an

    operand that is another min/max intrinsic with shared operand(s). The caller

    is expected to swap the operand arguments to handle commutation.

    Defined at line 6555 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Value * BuildSubAggregate (Value * From, ArrayRef idx_range, ilist_iterator_w_bits InsertBefore)

    This helper takes a nested struct and extracts a part of it (which is again a

    struct) into a new value. For example, given the struct:

    { a, { b, { c, d }, e } }

    and the indices "1, 1" this returns

    { c, d }.

    It does this by inserting an insertvalue for each element in the resulting

    struct, as opposed to just inserting a single struct. This will only work if

    each of the elements of the substruct are known (ie, inserted into From by an

    insertvalue instruction somewhere).

    All inserted insertvalue instructions are inserted before InsertBefore

    Defined at line 6560 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool arebothOperandsNotSNan (SDValue Operand1, SDValue Operand2, SelectionDAG & DAG)

    Defined at line 6597 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool printObjc1_32bit_MetaData (MachOObjectFile * O, bool verbose)

    Defined at line 6600 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool arebothOperandsNotNan (SDValue Operand1, SDValue Operand2, SelectionDAG & DAG)

    Defined at line 6602 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool hasSameExtUse (Value * Val, const TargetLowering & TLI)

    Check if all the uses of

    are equivalent (or free) zero or

    sign extensions.

    Defined at line 6603 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • Instruction * processUMulZExtIdiom (ICmpInst & I, Value * MulVal, const APInt * OtherVal, InstCombinerImpl & IC)

    Recognize and process idiom involving test for multiplication

    overflow.

    The caller has matched a pattern of the form:

    I = cmp u (mul(zext A, zext B), V

    The function checks if this is a test for overflow and if so replaces

    multiplication with call to 'mul.with.overflow' intrinsic.

    Parameters

    I Compare instruction.
    MulVal Result of 'mult' instruction. It is one of the arguments of the compare instruction. Must be of integer type.
    OtherVal The other argument of compare instruction.

    Defined at line 6605 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • unsigned int getMinMaxOpcodeForFP (SDValue Operand1, SDValue Operand2, CondCode CC, unsigned int OrAndOpcode, SelectionDAG & DAG, bool isFMAXNUMFMINNUM_IEEE, bool isFMAXNUMFMINNUM)

    FIXME: use FMINIMUMNUM if possible, such as for RISC-V.

    Defined at line 6608 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • MinMaxOptResult OptimizeConstMinMax (const Constant * RHSConst, const Intrinsic::ID IID, const CallBase * Call, Constant ** OutNewConstVal)

    Get the optimized value for a min/max instruction with a single constant

    input (either undef or scalar constantFP). The result may indicate to

    use the non-const LHS value, use a new constant value instead (with NaNs

    quieted), or to choose either option in the case of undef/poison.

    Defined at line 6610 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool isSETCCOp (unsigned int Opcode)

    Return true is this is a SETCC node or a strict version of it.

    Defined at line 6620 of file llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

  • bool isLogicalMaskOp (unsigned int Opcode)

    Return true if this is a node that could have two SETCCs as operands.

    Defined at line 6631 of file llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

  • EVT getSETCCOperandType (SDValue N)

    If N is a SETCC or a strict variant of it, return the type

    of the compare operands.

    Defined at line 6643 of file llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

  • InstructionCost getShuffleCost (const TargetTransformInfo & TTI, ShuffleKind Kind, VectorType * Tp, ArrayRef Mask, TargetCostKind CostKind, int Index, VectorType * SubTp, ArrayRef<const Value *> Args)

    Returns the cost of the shuffle instructions with the given

    vector

    type

    and optional

    Adds SLP-specifc cost estimation for insert

    subvector pattern.

    Defined at line 6647 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isSETCCorConvertedSETCC (SDValue N)

    Defined at line 6651 of file llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

  • SDValue foldAndOrOfSETCC (SDNode * LogicOp, SelectionDAG & DAG)

    Defined at line 6666 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Value * simplifySVEIntReduction (Intrinsic::ID IID, Type * ReturnType, Value * Op0, Value * Op1)

    Defined at line 6673 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • InstructionCost getScalarizationOverhead (const TargetTransformInfo & TTI, Type * ScalarTy, VectorType * Ty, const APInt & DemandedElts, bool Insert, bool Extract, TargetCostKind CostKind, bool ForPoisonSrc, ArrayRef VL)

    This is similar to TargetTransformInfo::getScalarizationOverhead, but if

    ScalarTy is a FixedVectorType, a vector will be inserted or extracted

    instead of a scalar.

    Defined at line 6676 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void removeSwitchAfterSelectFold (SwitchInst * SI, PHINode * PHI, Value * SelectValue, IRBuilder<> & Builder, DomTreeUpdater * DTU)

    Helper function to cleanup a switch instruction that has been converted into

    a select, fixing up PHI nodes and basic blocks.

    Defined at line 6683 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • ElementCount determineVPlanVF (const TargetTransformInfo & TTI, LoopVectorizationCostModel & CM)

    This function will select a scalable VF if the target supports scalable

    vectors and a fixed one otherwise.

    TODO: we could return a pair of values that specify the max VF and

    min VF, to be used in `buildVPlans(MinVF, MaxVF)` instead of

    `buildVPlans(VF, VF)`. We cannot do it because VPLAN at the moment

    doesn't have a cost model that can choose which plan to execute if

    more than one is generated.

    Defined at line 6686 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • unsigned int numLLVMArgOps (SmallVectorImpl<uint64_t> & Expr)

    Returns the total number of DW_OP_llvm_arg operands in the expression.

    This helps in determining if a DIArglist is necessary or can be omitted from

    the dbg.value.

    Defined at line 6692 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • template <typename T>
    void updateDVIWithLocation (T & DbgVal, Value * Location, SmallVectorImpl<uint64_t> & Ops)

    Overwrites DVI with the location and Ops as the DIExpression. This will

    create an invalid expression if Ops has any dwarf::DW_OP_llvm_arg operands,

    because a DIArglist is not created for the first argument of the dbg.value.

    Defined at line 6705 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool isOldDbgFormatIntrinsic (StringRef Name)

    Defined at line 6709 of file llvm/lib/AsmParser/LLParser.cpp

  • InstructionCost getVectorInstrCost (const TargetTransformInfo & TTI, Type * ScalarTy, unsigned int Opcode, Type * Val, TargetCostKind CostKind, unsigned int Index, Value * Scalar, ArrayRef<std::tuple<Value *, User *, int>> ScalarUserAndIdx)

    This is similar to TargetTransformInfo::getVectorInstrCost, but if ScalarTy

    is a FixedVectorType, a vector will be extracted instead of a scalar.

    Defined at line 6710 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • template <typename T>
    void updateDVIWithLocations (T & DbgVal, SmallVectorImpl<Value *> & Locations, SmallVectorImpl<uint64_t> & Ops)

    Overwrite DVI with locations placed into a DIArglist.

    Defined at line 6716 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool trySwitchToSelect (SwitchInst * SI, IRBuilder<> & Builder, DomTreeUpdater * DTU, const DataLayout & DL, const TargetTransformInfo & TTI)

    If a switch is only used to initialize one or more phi nodes in a common

    successor block with only two different constant values, try to replace the

    switch with a select. Returns true if the fold was made.

    Defined at line 6720 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • InstructionCost getExtractWithExtendCost (const TargetTransformInfo & TTI, unsigned int Opcode, Type * Dst, VectorType * VecTy, unsigned int Index, TargetCostKind CostKind)

    This is similar to TargetTransformInfo::getExtractWithExtendCost, but if Dst

    is a FixedVectorType, a vector will be extracted instead of a scalar.

    Defined at line 6729 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void UpdateDbgValue (DVIRecoveryRec & DVIRec, SmallVectorImpl<Value *> & NewLocationOps, SmallVectorImpl<uint64_t> & NewExpr)

    Write the new expression and new location ops for the dbg.value. If possible

    reduce the szie of the dbg.value by omitting DIArglist. This

    can be omitted if:

    1. There is only a single location, refenced by a single DW_OP_llvm_arg.

    2. The DW_OP_LLVM_arg is the first operand in the expression.

    Defined at line 6735 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void resolveTargetShuffleInputsAndMask (SmallVectorImpl<SDValue> & Inputs, SmallVectorImpl<int> & Mask)

    Removes unused/repeated shuffle source inputs and adjusts the shuffle mask.

    Defined at line 6744 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * createInsertVector (IRBuilderBase & Builder, Value * Vec, Value * V, unsigned int Index, function_ref<Value *(Value *, Value *, ArrayRef<int>)> Generator)

    Creates subvector insert. Generates shuffle using

    or

    using default shuffle.

    Defined at line 6747 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • APInt getDemandedBitsLHSMask (ICmpInst & I, unsigned int BitWidth)

    When performing a comparison against a constant, it is possible that not all

    the bits in the LHS are demanded. This helper method computes the mask that

    IS demanded.

    Defined at line 6752 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • Value * getValueOrPoison (WeakVH & VH, LLVMContext & C)

    Cached location ops may be erased during LSR, in which case a poison is

    required when restoring from the cache. The type of that location is no

    longer available, so just use int8. The poison will be replaced by one or

    more locations later when a SCEVDbgValueBuilder selects alternative

    locations to use for the salvage.

    Defined at line 6770 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void DumpProtocolSection (MachOObjectFile * O, const char * sect, uint32_t size, uint32_t addr)

    Defined at line 6770 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void restorePreTransformState (DVIRecoveryRec & DVIRec)

    Restore the DVI's pre-LSR arguments. Substitute undef for any erased values.

    Defined at line 6775 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • Value * createExtractVector (IRBuilderBase & Builder, Value * Vec, unsigned int SubVecVF, unsigned int Index)

    Generates subvector extract using

    or using default shuffle.

    Defined at line 6777 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool buildCompressMask (ArrayRef PointerOps, ArrayRef Order, Type * ScalarTy, const DataLayout & DL, ScalarEvolution & SE, SmallVectorImpl<int> & CompressMask)

    Builds compress-like mask for shuffles for the given

    ordered

    with

    Returns

    true if the mask represents strided access, false - otherwise.

    Defined at line 6787 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool getTargetShuffleInputs (SDValue Op, const APInt & DemandedElts, SmallVectorImpl<SDValue> & Inputs, SmallVectorImpl<int> & Mask, APInt & KnownUndef, APInt & KnownZero, const SelectionDAG & DAG, unsigned int Depth, bool ResolveKnownElts)

    Calls getTargetShuffleAndZeroables to resolve a target shuffle mask's inputs

    and then sets the SM_SentinelUndef and SM_SentinelZero values.

    Returns true if the target shuffle mask was decoded.

    Defined at line 6788 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void printObjcMetaData (MachOObjectFile * O, bool verbose)

    Defined at line 6800 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool SalvageDVI (llvm::Loop * L, ScalarEvolution & SE, llvm::PHINode * LSRInductionVar, DVIRecoveryRec & DVIRec, const SCEV * SCEVInductionVar, SCEVDbgValueBuilder IterCountExpr)

    Defined at line 6806 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • uint64_t GetStringLengthH (const Value * V, SmallPtrSetImpl<const PHINode *> & PHIs, unsigned int CharSize)

    If we can compute the length of the string pointed to by

    the specified pointer, return 'len+1'. If we can't, return 0.

    Defined at line 6807 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isChainSelectCmpBranch (const SelectInst * SI)

    Return true when the instruction sequence within a block is select-cmp-br.

    Defined at line 6813 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool getTargetShuffleInputs (SDValue Op, const APInt & DemandedElts, SmallVectorImpl<SDValue> & Inputs, SmallVectorImpl<int> & Mask, const SelectionDAG & DAG, unsigned int Depth, bool ResolveKnownElts)

    Forward declaration (for getFauxShuffleMask recursive check).

    Defined at line 6814 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool hasUndefRegUpdate (unsigned int Opcode, unsigned int OpNum, bool ForLoadFold)

    Return true for any instruction the copies the high bits of the first source

    operand into the unused high bits of the destination operand.

    Also returns true for instructions that have two inputs where one may

    be undef and we want it to use the same register as the other input.

    Defined at line 6816 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool isMaskedLoadCompress (ArrayRef VL, ArrayRef PointerOps, ArrayRef Order, const TargetTransformInfo & TTI, const DataLayout & DL, ScalarEvolution & SE, AssumptionCache & AC, const DominatorTree & DT, const TargetLibraryInfo & TLI, const function_ref<bool (Value *)> AreAllUsersVectorized, bool & IsMasked, unsigned int & InterleaveFactor, SmallVectorImpl<int> & CompressMask, VectorType *& LoadVecTy)

    Checks if the

    can be transformed to a (masked)load + compress or

    (masked) interleaved load.

    Defined at line 6820 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool getTargetShuffleInputs (SDValue Op, SmallVectorImpl<SDValue> & Inputs, SmallVectorImpl<int> & Mask, const SelectionDAG & DAG, unsigned int Depth, bool ResolveKnownElts)

    Defined at line 6824 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • std::optional<APInt> FoldValue (unsigned int Opcode, const APInt & C1, const APInt & C2)

    Defined at line 6836 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • const char * GuessLiteralPointer (uint64_t ReferenceValue, uint64_t ReferencePC, uint64_t * ReferenceType, struct DisassembleInfo * info)

    GuessLiteralPointer returns a string which for the item in the Mach-O file

    for the address passed in as ReferenceValue for printing as a comment with

    the instruction and also returns the corresponding type of that item

    indirectly through ReferenceType.

    If ReferenceValue is an address of literal cstring then a pointer to the

    cstring is returned and ReferenceType is set to

    LLVMDisassembler_ReferenceType_Out_LitPool_CstrAddr .

    If ReferenceValue is an address of an Objective-C CFString, Selector ref or

    Class ref that name is returned and the ReferenceType is set accordingly.

    Lastly, literals which are Symbol address in a literal pool are looked for

    and if found the symbol name is returned and ReferenceType is set to

    LLVMDisassembler_ReferenceType_Out_LitPool_SymAddr .

    If there is no item in the Mach-O file for the address passed in as

    ReferenceValue nullptr is returned and ReferenceType is unchanged.

    Defined at line 6838 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue getBROADCAST_LOAD (unsigned int Opcode, const SDLoc & DL, EVT VT, EVT MemVT, MemSDNode * Mem, unsigned int Offset, SelectionDAG & DAG)

    Attempt to create a scalar/subvector broadcast from the base MemSDNode.

    Defined at line 6839 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSelectAsExtAnd (SDValue Cond, SDValue T, SDValue F, const SDLoc & DL, SelectionDAG & DAG)

    Combine `(select c, (X

    &

    1), 0)` -> `(and (zext c), X)`.

    We canonicalize to the `select` form in the middle end, but the `and` form

    gets better codegen and all tested targets (arm, x86, riscv)

    Defined at line 6859 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue getShuffleScalarElt (SDValue Op, unsigned int Index, SelectionDAG & DAG, unsigned int Depth)

    Returns the scalar element that will make up the i'th

    element of the result of the vector shuffle.

    Defined at line 6864 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • std::optional<APInt> FoldValueWithUndef (unsigned int Opcode, const APInt & C1, bool IsUndef1, const APInt & C2, bool IsUndef2)

    Handle constant folding with UNDEF.

    TODO: Handle more cases.

    Defined at line 6897 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void DbgRewriteSalvageableDVIs (llvm::Loop * L, ScalarEvolution & SE, llvm::PHINode * LSRInductionVar, int & DVIToUpdate)

    Obtain an expression for the iteration count, then attempt to salvage the

    dbg.value intrinsics.

    Defined at line 6912 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void turnVectorIntoSplatVector (MutableArrayRef<SDValue> Values, std::function<bool (SDValue)> Predicate, SDValue AlternativeReplacement)

    If all values in Values that *don't* match the predicate are same 'splat'

    value, then replace all values with that splat value.

    Else, if AlternativeReplacement was provided, then replace all values that

    do match predicate with AlternativeReplacement value.

    Defined at line 6914 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • bool isSameUnderlyingObjectInLoop (const PHINode * PN, const LoopInfo * LI)

    defines a loop-variant pointer to an object. Check if the

    previous iteration of the loop was referring to the same object as

    Defined at line 6928 of file llvm/lib/Analysis/ValueTracking.cpp

  • void DbgGatherSalvagableDVI (Loop * L, ScalarEvolution & SE, int & SalvageableDVISCEVs)

    Identify and cache salvageable DVI locations and expressions along with the

    corresponding SCEV(s). Also ensure that the DVI is not deleted between

    cacheing and salvaging.

    Defined at line 6950 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • bool isMaskedLoadCompress (ArrayRef VL, ArrayRef PointerOps, ArrayRef Order, const TargetTransformInfo & TTI, const DataLayout & DL, ScalarEvolution & SE, AssumptionCache & AC, const DominatorTree & DT, const TargetLibraryInfo & TLI, const function_ref<bool (Value *)> AreAllUsersVectorized)

    Checks if the

    can be transformed to a (masked)load + compress or

    (masked) interleaved load.

    Defined at line 6952 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue LowerBuildVectorAsInsert (SDValue Op, const SDLoc & DL, const APInt & NonZeroMask, unsigned int NumNonZero, unsigned int NumZero, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Use PINSRB/PINSRW/PINSRD to create a build vector.

    Defined at line 6965 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const char * SymbolizerSymbolLookUp (void * DisInfo, uint64_t ReferenceValue, uint64_t * ReferenceType, uint64_t ReferencePC, const char ** ReferenceName)

    SymbolizerSymbolLookUp is the symbol lookup function passed when creating

    the Symbolizer. It looks up the ReferenceValue using the info passed via the

    pointer to the struct DisassembleInfo that was passed when MCSymbolizer

    is created and returns the symbol name that matches the ReferenceValue or

    nullptr if none. The ReferenceType is passed in for the IN type of

    reference the instruction is making from the values in defined in the header

    "llvm-c/Disassembler.h". On return the ReferenceType can set to a specific

    Out type and the ReferenceName will also be set which is added as a comment

    to the disassembled instruction.

    If the symbol name is a C++ mangled name then the demangled name is

    returned through ReferenceName and ReferenceType is set to

    LLVMDisassembler_ReferenceType_DeMangled_Name .

    When this is called to get a symbol name for a branch target then the

    ReferenceType will be LLVMDisassembler_ReferenceType_In_Branch and then

    SymbolValue will be looked for in the indirect symbol table to determine if

    it is an address for a symbol stub. If so then the symbol name for that

    stub is returned indirectly through ReferenceName and then ReferenceType is

    set to LLVMDisassembler_ReferenceType_Out_SymbolStub.

    When this is called with an value loaded via a PC relative load then

    ReferenceType will be LLVMDisassembler_ReferenceType_In_PCrel_Load then the

    SymbolValue is checked to be an address of literal pointer, symbol pointer,

    or an Objective-C meta data reference. If so the output ReferenceType is

    set to correspond to that as well as setting the ReferenceName.

    Defined at line 6974 of file llvm/tools/llvm-objdump/MachODump.cpp

  • llvm::PHINode * GetInductionVariable (const Loop & L, ScalarEvolution & SE, const LSRInstance & LSR)

    Ideally pick the PHI IV inserted by ScalarEvolutionExpander. As a fallback

    any PHi from the loop header is usable, but may have less chance of

    surviving subsequent transforms.

    Defined at line 7005 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • SDValue LowerBuildVectorv16i8 (SDValue Op, const SDLoc & DL, const APInt & NonZeroMask, unsigned int NumNonZero, unsigned int NumZero, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Custom lower build_vector of v16i8.

    Defined at line 7007 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool planContainsAdditionalSimplifications (VPlan & Plan, VPCostContext & CostCtx, Loop * TheLoop, ElementCount VF)

    Return true if the original loop

    \

    TheLoop contains any instructions that do

    not have corresponding recipes in

    and are not marked to be ignored

    in

    This means the VPlan contains simplification that the legacy

    cost-model did not account for.

    Defined at line 7018 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • bool ReduceLoopStrength (Loop * L, IVUsers & IU, ScalarEvolution & SE, DominatorTree & DT, LoopInfo & LI, const TargetTransformInfo & TTI, AssumptionCache & AC, TargetLibraryInfo & TLI, MemorySSA * MSSA)

    Defined at line 7037 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • ConstantRange getRangeForAffineARHelper (APInt Step, const ConstantRange & StartRange, const APInt & MaxBECount, bool Signed)

    Given a StartRange, Step and MaxBECount for an expression compute a range of

    values that the expression can take. Initially, the expression has a value

    from StartRange and then is changed by Step up to MaxBECount times. Signed

    argument defines if we treat Step as signed or unsigned.

    Defined at line 7038 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool isTypeLegalForLookupTable (Type * Ty, const TargetTransformInfo & TTI, const DataLayout & DL)

    Defined at line 7052 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool isSwitchDense (uint64_t NumCases, uint64_t CaseRange)

    Defined at line 7079 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • DISubprogram * getSubprogram (Metadata * LocalScope)

    Carefully grab the subprogram from a local scope.

    This carefully grabs the subprogram from a local scope, avoiding the

    built-in assertions that would typically fire.

    Defined at line 7086 of file llvm/lib/IR/Verifier.cpp

  • const Value * getUnderlyingObjectFromInt (const Value * V)

    This is the function that does the work of looking through basic

    ptrtoint+arithmetic+inttoptr sequences.

    Defined at line 7086 of file llvm/lib/Analysis/ValueTracking.cpp

  • SDValue LowerBuildVectorv8i16 (SDValue Op, const SDLoc & DL, const APInt & NonZeroMask, unsigned int NumNonZero, unsigned int NumZero, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Custom lower build_vector of v8i16.

    Defined at line 7089 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isSwitchDense (ArrayRef Values)

    Defined at line 7091 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • SDValue LowerBuildVectorv4x32 (SDValue Op, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Custom lower build_vector of v4i32 or v4f32.

    Defined at line 7103 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • std::optional<unsigned int> getMinUselessShift (KnownBits ValueKB, unsigned int Opcode, std::optional<int64_t> & Result)

    Return the minimum useless shift amount that results in complete loss of the

    source value. Return std::nullopt when it cannot determine a value.

    Defined at line 7105 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • bool shouldBuildLookupTable (SwitchInst * SI, uint64_t TableSize, const TargetTransformInfo & TTI, const DataLayout & DL, const SmallVector<Type *> & ResultTypes)

    Determine whether a lookup table should be built for this switch, based on

    the number of cases, size of the table, and the types of the results.

    TODO: We could support larger than legal types by limiting based on the

    number of loads required and/or table size. If the constants are small we

    could use smaller table entries and extend after the load.

    Defined at line 7105 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Value * simplifyIntrinsic (CallBase * Call, Value * Callee, ArrayRef Args, const SimplifyQuery & Q)

    Defined at line 7106 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • void emitComments (raw_svector_ostream & CommentStream, SmallString<128> & CommentsToEmit, formatted_raw_ostream & FormattedOS, const MCAsmInfo & MAI)

    Emits the comments that are stored in the CommentStream.

    Each comment in the CommentStream must end with a newline.

    Defined at line 7117 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool shouldUseSwitchConditionAsTableIndex (ConstantInt & MinCaseVal, const ConstantInt & MaxCaseVal, bool HasDefaultResults, const SmallVector<Type *> & ResultTypes, const DataLayout & DL, const TargetTransformInfo & TTI)

    Defined at line 7141 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void initializeLoopStrengthReducePassOnce (PassRegistry & Registry)

    Defined at line 7151 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp

  • void reuseTableCompare (User * PhiUser, BasicBlock * PhiBlock, BranchInst * RangeCheckBranch, Constant * DefaultValue, const SmallVectorImpl<std::pair<ConstantInt *, Constant *>> & Values)

    Try to reuse the switch table index compare. Following pattern:

    Is optimized to:

    Jump threading will then eliminate the second if(cond).

    Code

                                                    
                                                             if (idx < tablesize)
                                                                r = table[idx]; // table does not contain default_value
                                                             else
                                                                r = default_value;
                                                             if (r != default_value)
                                                                ...
                                                    
                                                
                                                    
                                                             cond = idx < tablesize;
                                                             if (cond)
                                                                r = table[idx];
                                                             else
                                                                r = default_value;
                                                             if (cond)
                                                                ...
                                                    
                                                

    Defined at line 7177 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool onlyUsedByLifetimeMarkersOrDroppableInstsHelper (const Value * V, bool AllowLifetime, bool AllowDroppable)

    Defined at line 7193 of file llvm/lib/Analysis/ValueTracking.cpp

  • ICmpInst * canonicalizeCmpWithConstant (ICmpInst & I)

    If we have an icmp le or icmp ge instruction with a constant operand, turn

    it into the appropriate icmp lt or icmp gt instruction. This transform

    allows them to be folded in visitICmpInst.

    Defined at line 7196 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • SDValue getVShift (bool isLeft, EVT VT, SDValue SrcOp, unsigned int NumBits, SelectionDAG & DAG, const TargetLowering & TLI, const SDLoc & dl)

    Return a vector logical shift node.

    Defined at line 7230 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * canonicalizeICmpBool (ICmpInst & I, InstCombiner::BuilderTy & Builder)

    Integer compare with boolean values can always be turned into bitwise ops.

    Defined at line 7239 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void addOperands (MachineInstrBuilder & MIB, ArrayRef<MachineOperand> MOs, int PtrOffset)

    Defined at line 7242 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • SDValue LowerAsSplatVectorLoad (SDValue SrcOp, MVT VT, const SDLoc & dl, SelectionDAG & DAG)

    Defined at line 7242 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool simplifySwitchLookup (SwitchInst * SI, IRBuilder<> & Builder, DomTreeUpdater * DTU, const DataLayout & DL, const TargetTransformInfo & TTI, bool ConvertSwitchToLookupTable)

    If the switch is only used to initialize one or more phi nodes in a common

    successor block with different constant values, replace the switch with

    lookup tables.

    Defined at line 7242 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void updateOperandRegConstraints (MachineFunction & MF, MachineInstr & NewMI, const TargetInstrInfo & TII)

    Defined at line 7266 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void updateNVPTXAttr (Function & Kernel, StringRef Name, int32_t Value, bool Min)

    Defined at line 7279 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • Value * getStartValueFromReductionResult (VPInstruction * RdxResult)

    Defined at line 7281 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • SDValue combineShiftAnd1ToBitTest (SDNode * And, SelectionDAG & DAG)

    Try to replace shift/logic that tests if a bit is clear with mask + setcc.

    For a target with a bit test, this is expected to become test + set and save

    at least 1 instruction.

    Defined at line 7289 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • MachineInstr * fuseTwoAddrInst (MachineFunction & MF, unsigned int Opcode, ArrayRef<MachineOperand> MOs, int InsertPt, MachineInstr & MI, const TargetInstrInfo & TII)

    Defined at line 7291 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void fixReductionScalarResumeWhenVectorizingEpilog (VPPhi * EpiResumePhiR, PHINode & EpiResumePhi, BasicBlock * BypassBlock)

    If

    is resume VPPhi for a reduction when vectorizing the

    epilog loop, fix the reduction's scalar PHI node by adding the incoming value

    from the main vector loop.

    Defined at line 7293 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • template <class ELFT>
    Expected<const Elf_Mips_ABIFlags<ELFT> *> getMipsAbiFlagsSection (const ELFDumper<ELFT> & Dumper)

    Defined at line 7301 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • Value * tryConstantFoldCall (CallBase * Call, Value * Callee, ArrayRef Args, const SimplifyQuery & Q)

    Defined at line 7317 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool findEltLoadSrc (SDValue Elt, LoadSDNode *& Ld, int64_t & ByteOffset)

    Recurse to find a LoadSDNode source and the accumulated ByteOffest.

    Defined at line 7317 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * foldICmpWithHighBitMask (ICmpInst & Cmp, InstCombiner::BuilderTy & Builder)

    Transform pattern like:

    (1

    <

    <

    Y) u

    <

    = X or ~(-1

    <

    <

    Y) u

    <

    X or ((1

    <

    <

    Y)+(-1)) u

    <

    X

    (1

    <

    <

    Y) u> X or ~(-1

    <

    <

    Y) u>= X or ((1

    <

    <

    Y)+(-1)) u>= X

    Into:

    (X l>> Y) != 0

    (X l>> Y) == 0

    Defined at line 7318 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • MachineInstr * fuseInst (MachineFunction & MF, unsigned int Opcode, unsigned int OpNo, ArrayRef<MachineOperand> MOs, int InsertPt, MachineInstr & MI, const TargetInstrInfo & TII, int PtrOffset)

    Defined at line 7320 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • MachineInstr * makeM0Inst (const TargetInstrInfo & TII, unsigned int Opcode, ArrayRef<MachineOperand> MOs, int InsertPt, MachineInstr & MI)

    Defined at line 7352 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • OverflowResult mapOverflowResult (OverflowResult OR)

    Convert ConstantRange OverflowResult into ValueTracking OverflowResult.

    Defined at line 7361 of file llvm/lib/Analysis/ValueTracking.cpp

  • Instruction * foldVectorCmp (CmpInst & Cmp, InstCombiner::BuilderTy & Builder)

    Defined at line 7361 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • SDValue foldAndToUsubsat (SDNode * N, SelectionDAG & DAG, const SDLoc & DL)

    For targets that support usubsat, match a bit-hack form of that operation

    that ends in 'and' and convert it.

    Defined at line 7363 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue EltsFromConsecutiveLoads (EVT VT, ArrayRef<SDValue> Elts, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget, bool IsAfterLegalize, unsigned int Depth)

    Given the initializing elements 'Elts' of a vector of type 'VT', see if the

    elements can be replaced by a single large load which has the same value as

    a build_vector or insert_subvector whose loaded operands are 'Elts'.

    Example:

    <load

    i32 *a, load i32 *a+4, zero, undef> -> zextload a

    Defined at line 7364 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * simplifyFreezeInst (Value * Op0, const SimplifyQuery & Q)

    Given operands for a Freeze, see if we can fold the result.

    Defined at line 7376 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • SDValue foldLogicOfShifts (SDNode * N, SDValue LogicOp, SDValue ShiftOp, SelectionDAG & DAG)

    Given a bitwise logic operation N with a matching bitwise logic operand,

    fold a pattern where 2 of the source operands are identically shifted

    values. For example:

    ((X0

    <

    <

    Y) | Z) | (X1

    <

    <

    Y) --> ((X0 | X1)

    <

    <

    Y) | Z

    Defined at line 7388 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Value * simplifyInstructionWithOperands (Instruction * I, ArrayRef NewOps, const SimplifyQuery & SQ, unsigned int MaxRecurse)

    See if we can compute a simplified version of this instruction.

    If not, this returns null.

    Defined at line 7427 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • Instruction * foldICmpOfUAddOv (ICmpInst & I)

    extract(uadd.with.overflow(A, B), 0) ult A

    -> extract(uadd.with.overflow(A, B), 1)

    Defined at line 7431 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • SDValue foldLogicTreeOfShifts (SDNode * N, SDValue LeftHand, SDValue RightHand, SelectionDAG & DAG)

    Given a tree of logic operations with shape like

    (LOGIC (LOGIC (X, Y), LOGIC (Z, Y)))

    try to match and fold shift operations with the same shift amount.

    For example:

    LOGIC (LOGIC (SH X0, Y), Z), (LOGIC (SH X1, Y), W) -->

    --> LOGIC (SH (LOGIC X0, X1), Y), (LOGIC Z, W)

    Defined at line 7436 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool clusterSortPtrAccesses (ArrayRef VL, ArrayRef BBs, Type * ElemTy, const DataLayout & DL, ScalarEvolution & SE, SmallVectorImpl<unsigned int> & SortedIndices)

    Defined at line 7439 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool shouldPreventUndefRegUpdateMemFold (MachineFunction & MF, MachineInstr & MI)

    Defined at line 7443 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • OverflowResult computeOverflowForSignedAdd (const WithCache<const Value *> & LHS, const WithCache<const Value *> & RHS, const AddOperator * Add, const SimplifyQuery & SQ)

    Defined at line 7454 of file llvm/lib/Analysis/ValueTracking.cpp

  • Instruction * foldICmpInvariantGroup (ICmpInst & I)

    Defined at line 7459 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • SDValue foldMaskedMerge (SDNode * Node, SelectionDAG & DAG, const TargetLowering & TLI, const SDLoc & DL)

    Fold "masked merge" expressions like `(m

    &

    x) | (~m

    &

    y)` and its DeMorgan

    variant `(~m | x)

    &

    (m | y)` into the equivalent `((x ^ y)

    &

    m) ^ y)`

    pattern. This is typically a better representation for targets without a

    fused "and-not" operation.

    Defined at line 7471 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Instruction * foldReductionIdiom (ICmpInst & I, InstCombiner::BuilderTy & Builder, const DataLayout & DL)

    This function folds patterns produced by lowering of reduce idioms, such as

    llvm.vector.reduce.and which are lowered into instruction chains. This code

    attempts to generate fewer number of scalar comparisons instead of vector

    comparisons when possible.

    Defined at line 7480 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void printFailMsgforFold (const MachineInstr & MI, unsigned int Idx)

    Defined at line 7483 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void parseWholeProgramDevirtResolutionByArg (ArrayRef Record, size_t & Slot, WholeProgramDevirtResolution & Wpd)

    Defined at line 7511 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void parseWholeProgramDevirtResolution (ArrayRef Record, StringRef Strtab, size_t & Slot, TypeIdSummary & TypeId)

    Defined at line 7526 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void parseTypeIdSummaryRecord (ArrayRef Record, StringRef Strtab, ModuleSummaryIndex & TheIndex)

    Defined at line 7542 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool sinkSelectOperand (const TargetTransformInfo * TTI, Value * V)

    Check if V (an operand of a select instruction) is an expensive instruction

    that is only used once.

    Defined at line 7551 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool isFormingBranchFromSelectProfitable (const TargetTransformInfo * TTI, const TargetLowering * TLI, SelectInst * SI)

    Returns true if a SelectInst should be turned into an explicit branch.

    Defined at line 7560 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool areTwoInsertFromSameBuildVector (InsertElementInst * VU, InsertElementInst * V, function_ref<Value *(InsertElementInst *)> GetBaseOperand)

    Check if two insertelement instructions are from the same buildvector.

    Defined at line 7569 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool replaceAndRecursivelySimplifyImpl (Instruction * I, Value * SimpleV, const TargetLibraryInfo * TLI, const DominatorTree * DT, AssumptionCache * AC, SmallSetVector<Instruction *, 8> * UnsimplifiedUsers)

    Implementation of recursive simplification through an instruction's

    uses.

    This is the common implementation of the recursive simplification routines.

    If we have a pre-simplified value in 'SimpleV', that is forcibly used to

    replace the instruction 'I'. Otherwise, we simply add 'I' to the list of

    instructions to process and attempt to simplify it using

    InstructionSimplify. Recursively visited users which could not be

    simplified themselves are to the optional UnsimplifiedUsers set for

    further processing by the caller.

    This routine returns 'true' only when *it* simplifies something. The passed

    in simplified value does not count toward this.

    Defined at line 7591 of file llvm/lib/Analysis/InstructionSimplify.cpp

  • bool reduceSwitchRange (SwitchInst * SI, IRBuilder<> & Builder, const DataLayout & DL, const TargetTransformInfo & TTI)

    Try to transform a switch that has "holes" in it to a contiguous sequence

    of cases.

    A switch such as: switch(i) {case 5: case 9: case 13: case 17:} can be

    range-reduced to: switch ((i-5) / 4) {case 0: case 1: case 2: case 3:}.

    This converts a sparse switch into a dense switch which allows better

    lowering and could also allow transforming into a lookup table.

    Defined at line 7599 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • Value * getTrueOrFalseValue (SelectInst * SI, bool isTrue, const SmallPtrSet<const Instruction *, 2> & Selects)

    If

    is true, return the true value of

    otherwise return

    false value of

    If the true/false value of

    is defined by any

    select instructions in

    look through the defining select

    instruction until the true/false value is not defined in

    Defined at line 7604 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool shiftAmountKnownInRange (const Value * ShiftAmount)

    Shifts return poison if shiftwidth is larger than the bitwidth.

    Defined at line 7624 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool includesPoison (UndefPoisonKind Kind)

    Defined at line 7654 of file llvm/lib/Analysis/ValueTracking.cpp

  • void setSpecialRefs (SmallVectorImpl<ValueInfo> & Refs, unsigned int ROCnt, unsigned int WOCnt)

    Defined at line 7654 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool includesUndef (UndefPoisonKind Kind)

    Defined at line 7658 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool canCreateUndefOrPoison (const Operator * Op, UndefPoisonKind Kind, bool ConsiderFlagsAndMetadata)

    Defined at line 7662 of file llvm/lib/Analysis/ValueTracking.cpp

  • SDValue combineToConsecutiveLoads (EVT VT, SDValue Op, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget, bool IsAfterLegalize)

    Combine a vector ops (shuffles etc.) that is equal to build_vector load1,

    load2, load3, load4,

    <

    0, 1, 2, 3> into a vector load if the load addresses

    are consecutive, non-overlapping, and in the right order.

    Defined at line 7675 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Constant * getConstantVector (MVT VT, ArrayRef<APInt> Bits, const APInt & Undefs, LLVMContext & C)

    Defined at line 7692 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void FixupDebugInfoForOutlinedFunction (OpenMPIRBuilder & OMPBuilder, IRBuilderBase & Builder, Function * Func, int & ValueReplacementMap)

    Defined at line 7692 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool simplifySwitchWhenUMin (SwitchInst * SI, DomTreeUpdater * DTU)

    Tries to transform the switch when the condition is umin with a constant.

    In that case, the default branch can be replaced by the constant's branch.

    This method also removes dead cases when the simplification cannot replace

    the default branch.

    For example:

    switch(umin(a, 3)) {

    case 0:

    case 1:

    case 2:

    case 3:

    case 4:

    // ...

    default:

    unreachable

    }

    Transforms into:

    switch(a) {

    case 0:

    case 1:

    case 2:

    default:

    // This is case 3

    }

    Defined at line 7704 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool isNonFoldablePartialRegisterLoad (const MachineInstr & LoadMI, const MachineInstr & UserMI, const MachineFunction & MF)

    Check if

    is a partial register load that we can't fold into

    because the latter uses contents that wouldn't be defined in the folded

    version. For instance, this transformation isn't legal:

    movss (%rdi), %xmm0

    addps %xmm0, %xmm0

    ->

    addps (%rdi), %xmm0

    But this one is:

    movss (%rdi), %xmm0

    addss %xmm0, %xmm0

    ->

    addss (%rdi), %xmm0

    Defined at line 7711 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • Constant * getConstantVector (MVT VT, const APInt & SplatValue, unsigned int SplatBitSize, LLVMContext & C)

    Defined at line 7717 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isFoldableUseOfShuffle (SDNode * N)

    Defined at line 7745 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * removeASCastIfPresent (Value * V)

    Defined at line 7754 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool directlyImpliesPoison (const Value * ValAssumedPoison, const Value * V, unsigned int Depth)

    Defined at line 7759 of file llvm/lib/Analysis/ValueTracking.cpp

  • Expected<Function *> createOutlinedFunction (OpenMPIRBuilder & OMPBuilder, IRBuilderBase & Builder, const OpenMPIRBuilder::TargetKernelDefaultAttrs & DefaultAttrs, StringRef FuncName, SmallVectorImpl<Value *> & Inputs, OpenMPIRBuilder::TargetBodyGenCallbackTy & CBFunc, OpenMPIRBuilder::TargetGenArgAccessorsCallbackTy & ArgAccessorFuncCB)

    Defined at line 7760 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool simplifySwitchOfPowersOfTwo (SwitchInst * SI, IRBuilder<> & Builder, DomTreeUpdater * DTU, const DataLayout & DL, const TargetTransformInfo & TTI)

    Tries to transform switch of powers of two to reduce switch range.

    For example, switch like:

    switch (C) { case 1: case 2: case 64: case 128: }

    will be transformed to:

    switch (count_trailing_zeros(C)) { case 0: case 1: case 6: case 7: }

    This transformation allows better lowering and may transform the switch

    instruction into a sequence of bit manipulation and a smaller

    log2(C)-indexed value table (instead of traditionally emitting a load of the

    address of the jump target, and indirectly jump to it).

    Defined at line 7763 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • bool isMaskableNode (SDValue V, const X86Subtarget & Subtarget)

    If the node has a single use by a VSELECT then AVX512 targets may be able to

    fold as a predicated instruction.

    Defined at line 7770 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isNonZeroModBitWidthOrUndef (const MachineRegisterInfo & MRI, Register Reg, unsigned int BW)

    Check that (every element of) Reg is undef or not an exact multiple of BW.

    Defined at line 7776 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • bool impliesPoison (const Value * ValAssumedPoison, const Value * V, unsigned int Depth)

    Defined at line 7787 of file llvm/lib/Analysis/ValueTracking.cpp

  • SDValue lowerBuildVectorAsBroadcast (BuildVectorSDNode * BVOp, const SDLoc & dl, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Attempt to use the vbroadcast instruction to generate a splat value

    from a splat BUILD_VECTOR which uses:

    a. A single scalar load, or a constant.

    b. Repeated pattern of constants (e.g.

    <

    0,1,0,1> or

    <

    0,1,2,3,0,1,2,3>).

    The VBROADCAST node is returned when a pattern is found,

    or SDValue() otherwise.

    Defined at line 7789 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isGuaranteedNotToBeUndefOrPoison (const Value * V, AssumptionCache * AC, const Instruction * CtxI, const DominatorTree * DT, unsigned int Depth, UndefPoisonKind Kind)

    Defined at line 7814 of file llvm/lib/Analysis/ValueTracking.cpp

  • void findUnwindRelocNameAddend (const MachOObjectFile * Obj, int & Symbols, const RelocationRef & Reloc, uint64_t Addr, StringRef & Name, uint64_t & Addend)

    Given a relocation from __compact_unwind, consisting of the RelocationRef

    and data being relocated, determine the best base Name and Addend to use for

    display purposes.

    1. An Extern relocation will directly reference a symbol (and the data is

    then already an addend), so use that.

    2. Otherwise the data is an offset in the object file's layout; try to find

    a symbol before it in the same section, and use the offset from there.

    3. Finally, if all that fails, fall back to an offset from the start of the

    referenced section.

    Defined at line 7843 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool simplifySwitchOfCmpIntrinsic (SwitchInst * SI, IRBuilderBase & Builder, DomTreeUpdater * DTU)

    Fold switch over ucmp/scmp intrinsic to br if two of the switch arms have

    the same destination.

    Defined at line 7875 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void printUnwindRelocDest (const MachOObjectFile * Obj, int & Symbols, const RelocationRef & Reloc, uint64_t Addr)

    Defined at line 7893 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void printMachOCompactUnwindSection (const MachOObjectFile * Obj, int & Symbols, const SectionRef & CompactUnwind)

    Defined at line 7909 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool IsRootTBAANode (const MDNode * MD)

    Defined at line 7935 of file llvm/lib/IR/Verifier.cpp

  • bool IsScalarTBAANodeImpl (const MDNode * MD, SmallPtrSetImpl<const MDNode *> & Visited)

    Defined at line 7939 of file llvm/lib/IR/Verifier.cpp

  • LoadInst * loadSharedDataFromTaskDescriptor (OpenMPIRBuilder & OMPIRBuilder, IRBuilderBase & Builder, Value * TaskWithPrivates, Type * TaskWithPrivatesTy)

    Given a task descriptor, TaskWithPrivates, return the pointer to the block

    of pointers containing shared data between the parent task and the created

    task.

    Defined at line 7946 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • unsigned int getExtendForIntVecReduction (unsigned int Opc)

    Defined at line 7967 of file llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

  • Function * emitTargetTaskProxyFunction (OpenMPIRBuilder & OMPBuilder, IRBuilderBase & Builder, CallInst * StaleCI, StructType * PrivatesTy, StructType * TaskWithPrivatesTy, const size_t NumOffloadingArrays, const int SharedArgsOperandNo)

    Create an entry point for a target task with the following.

    It'll have the following signature

    void

    .

    omp_target_task_proxy_func(i32 %thread.id, ptr %task)

    This function is called from emitTargetTask once the

    code to launch the target kernel has been outlined already.

    NumOffloadingArrays is the number of offloading arrays that we need to copy

    into the task structure so that the deferred target task can access this

    data even after the stack frame of the generating task has been rolled

    back. Offloading arrays contain base pointers, pointers, sizes etc

    of the data that the target kernel will access. These in effect are the

    non-empty arrays of pointers held by OpenMPIRBuilder::TargetDataRTArgs.

    Defined at line 7980 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • bool isRepeatedNonIdentityClusteredMask (ArrayRef Mask, unsigned int Sz)

    Checks if the given mask is a "clustered" mask with the same clusters of

    size

    which are not identity submasks.

    Defined at line 7987 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void printRegularSecondLevelUnwindPage (StringRef PageData)

    ===----------------------------------------------------------------------===//

    __unwind_info section dumping

    ===----------------------------------------------------------------------===//

    Defined at line 7996 of file llvm/tools/llvm-objdump/MachODump.cpp

  • template <class ELFT>
    bool getSymbolIndices (const typename ELFT::Shdr * CGRelSection, const ELFFile<ELFT> & Obj, const LLVMELFDumper<ELFT> * Dumper, SmallVector<uint32_t, 128> & SymbolIndices)

    Returns true if rel/rela section exists, and populates SymbolIndices.

    Otherwise returns false.

    Defined at line 8000 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool isNewFormatTBAATypeNode (llvm::MDNode * Type)

    Defined at line 8016 of file llvm/lib/IR/Verifier.cpp

  • void printCompressedSecondLevelUnwindPage (StringRef PageData, uint32_t FunctionBase, const SmallVectorImpl<uint32_t> & CommonEncodings)

    Defined at line 8017 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void combineOrders (MutableArrayRef<unsigned int> Order, ArrayRef SecondaryOrder)

    Defined at line 8027 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • int getUnderlyingExtractedFromVec (SDValue & ExtractedFromVec, SDValue ExtIdx)

    For an EXTRACT_VECTOR_ELT with a constant index return the real

    underlying vector and index.

    Modifies

    to the real vector and returns the real

    index.

    Defined at line 8027 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue buildFromShuffleMostly (SDValue Op, const SDLoc & DL, SelectionDAG & DAG)

    Defined at line 8057 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void printMachOUnwindInfoSection (const MachOObjectFile * Obj, int & Symbols, const SectionRef & UnwindInfo)

    Defined at line 8063 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isBSwapHWordElement (SDValue N, MutableArrayRef<SDNode *> Parts)

    Return true if the specified node is an element that makes up a 32-bit

    packed halfword byteswap.

    ((x

    &

    0x000000ff)

    <

    <

    8) |

    ((x

    &

    0x0000ff00) >> 8) |

    ((x

    &

    0x00ff0000)

    <

    <

    8) |

    ((x

    &

    0xff000000) >> 8)

    Defined at line 8073 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Type * getOffloadingArrayType (Value * V)

    Defined at line 8084 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • StructType * createTaskWithPrivatesTy (OpenMPIRBuilder & OMPIRBuilder, ArrayRef OffloadingArraysToPrivatize)

    This function returns a struct that has at most two members.

    The first member is always %struct.kmp_task_ompbuilder_t, that is the task

    descriptor. The second member, if needed, is a struct containing arrays

    that need to be passed to the offloaded target kernel. For example,

    if .offload_baseptrs, .offload_ptrs and .offload_sizes have to be passed to

    the target kernel and their types are [3 x ptr], [3 x ptr] and [3 x i64]

    respectively, then the types created by this function are

    %struct.privates = type { [3 x ptr], [3 x ptr], [3 x i64] }

    %struct.task_with_privates = type { %struct.kmp_task_ompbuilder_t,

    %struct.privates }

    %struct.task_with_privates is returned by this function.

    If there aren't any offloading arrays to pass to the target kernel,

    %struct.kmp_task_ompbuilder_t is returned.

    Defined at line 8108 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • SDValue LowerBUILD_VECTORvXbf16 (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Lower BUILD_VECTOR operation for v8bf16, v16bf16 and v32bf16 types.

    Defined at line 8129 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Error emitTargetOutlinedFunction (OpenMPIRBuilder & OMPBuilder, IRBuilderBase & Builder, bool IsOffloadEntry, TargetRegionEntryInfo & EntryInfo, const OpenMPIRBuilder::TargetKernelDefaultAttrs & DefaultAttrs, Function *& OutlinedFn, Constant *& OutlinedFnID, SmallVectorImpl<Value *> & Inputs, OpenMPIRBuilder::TargetBodyGenCallbackTy & CBFunc, OpenMPIRBuilder::TargetGenArgAccessorsCallbackTy & ArgAccessorFuncCB)

    Defined at line 8129 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • void initializeVerifierLegacyPassPassOnce (PassRegistry & Registry)

    Defined at line 8135 of file llvm/lib/IR/Verifier.cpp

  • std::optional<EVT> findMemType (SelectionDAG & DAG, const TargetLowering & TLI, unsigned int Width, EVT WidenVT, unsigned int Align, unsigned int WidenEx)

    Utility function to find the type to chop up a widen vector for load/store

    TLI: Target lowering used to determine legal types.

    Width: Width left need to load/store.

    WidenVT: The widen vector type to load to/store from

    Align: If 0, don't allow use of a wider type

    WidenEx: If Align is not 0, the amount additional we can load/store from.

    Defined at line 8138 of file llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

  • SDValue LowerBUILD_VECTORvXi1 (SDValue Op, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Lower BUILD_VECTOR operation for v8i1 and v16i1 types.

    Defined at line 8143 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isBSwapHWordPair (SDValue N, MutableArrayRef<SDNode *> Parts)

    Match 2 elements of a packed halfword bswap.

    Defined at line 8158 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool isNonZeroModBitWidthOrUndef (SDValue Z, unsigned int BW)

    Check that (every element of) Z is undef or not an exact multiple of BW.

    Defined at line 8173 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • SDValue matchBSwapHWordOrAndAnd (const TargetLowering & TLI, SelectionDAG & DAG, SDNode * N, SDValue N0, SDValue N1, EVT VT)

    Match this pattern:

    (or (and (shl (A, 8)), 0xff00ff00), (and (srl (A, 8)), 0x00ff00ff))

    And rewrite this to:

    (rotr (bswap A), 16)

    Defined at line 8178 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue expandVPFunnelShift (SDNode * Node, SelectionDAG & DAG)

    Defined at line 8180 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • SDValue BuildVectorFromScalar (SelectionDAG & DAG, EVT VecTy, SmallVectorImpl<SDValue> & LdOps, unsigned int Start, unsigned int End)

    Builds a vector type from scalar loads

    VecTy: Resulting Vector type

    LDOps: Load operators to build a vector type

    [Start,End) the list of loads to use.

    Defined at line 8208 of file llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp

  • LegalizeResult loweri64tof16ITOFP (MachineInstr & MI, Register Dst, LLT DstTy, Register Src, LLT SrcTy, MachineIRBuilder & MIRBuilder)

    i64->fp16 itofp can be lowered to i64->f64,f64->f32,f32->f16. We cannot

    convert fpround f64->f16 without double-rounding, so we manually perform the

    lowering here where we know it is valid.

    Defined at line 8216 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • template <typename ELFT>
    bool printGNUNoteLLVMStyle (uint32_t NoteType, ArrayRef Desc, ScopedPrinter & W, typename ELFT::Half EMachine)

    Defined at line 8232 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool isHorizOp (unsigned int Opcode)

    Defined at line 8234 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • template <typename CallableT>
    bool handleGuaranteedWellDefinedOps (const Instruction * I, const CallableT & Handle)

    Enumerates all operands of

    that are guaranteed to not be undef or

    poison. If the callback

    returns true, stop processing and return

    true. Otherwise, return false.

    Defined at line 8235 of file llvm/lib/Analysis/ValueTracking.cpp

  • Instruction * foldFCmpReciprocalAndZero (FCmpInst & I, Instruction * LHSI, Constant * RHSC)

    Fold (C / X)

    <

    0.0 --> X

    <

    0.0 if possible. Swap predicate if necessary.

    Defined at line 8245 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool printAndroidNoteLLVMStyle (uint32_t NoteType, ArrayRef Desc, ScopedPrinter & W)

    Defined at line 8266 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool isHorizontalBinOpPart (const BuildVectorSDNode * N, unsigned int Opcode, const SDLoc & DL, SelectionDAG & DAG, unsigned int BaseIdx, unsigned int LastIdx, SDValue & V0, SDValue & V1)

    This is a helper function of LowerToHorizontalOp().

    This function checks that the build_vector

    in input implements a

    128-bit partial horizontal operation on a 256-bit vector, but that operation

    may not match the layout of an x86 256-bit horizontal instruction.

    In other words, if this returns true, then some extraction/insertion will

    be required to produce a valid horizontal instruction.

    Parameter

    defines the kind of horizontal operation to match.

    For example, if

    is equal to ISD::ADD, then this function

    checks if

    implements a horizontal arithmetic add; if instead

    is equal to ISD::SUB, then this function checks if this is a horizontal

    arithmetic sub.

    This function only analyzes elements of

    whose indices are

    in range [BaseIdx, LastIdx).

    TODO: This function was originally used to match both real and fake partial

    horizontal operations, but the index-matching logic is incorrect for that.

    See the corrected implementation in isHopBuildVector(). Can we reduce this

    code because it is only used for partial h-op matching now?

    Defined at line 8269 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void PrintMachHeader (uint32_t magic, uint32_t cputype, uint32_t cpusubtype, uint32_t filetype, uint32_t ncmds, uint32_t sizeofcmds, uint32_t flags, bool verbose)

    Defined at line 8275 of file llvm/tools/llvm-objdump/MachODump.cpp

  • unsigned int getConstantTripCount (const SCEVConstant * ExitCount)

    Defined at line 8279 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • template <typename CallableT>
    bool handleGuaranteedNonPoisonOps (const Instruction * I, const CallableT & Handle)

    Enumerates all operands of

    that are guaranteed to not be poison.

    Defined at line 8297 of file llvm/lib/Analysis/ValueTracking.cpp

  • Instruction * foldFCmpFpTrunc (FCmpInst & I, const Instruction & FPTrunc, const Constant & C)

    Transform 'fptrunc(x) cmp C' to 'x cmp ext(C)' if possible.

    Patterns include:

    fptrunc(x)

    <

    C --> x

    <

    ext(C)

    fptrunc(x)

    <

    = C --> x

    <

    = ext(C)

    fptrunc(x) > C --> x > ext(C)

    fptrunc(x) >= C --> x >= ext(C)

    where 'ext(C)' is the extension of 'C' to the type of 'x' with a small bias

    due to precision loss.

    Defined at line 8299 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • template <typename ELFT>
    bool printLLVMOMPOFFLOADNoteLLVMStyle (uint32_t NoteType, ArrayRef Desc, ScopedPrinter & W)

    Defined at line 8307 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • bool tryToMergeLandingPad (LandingPadInst * LPad, BranchInst * BI, BasicBlock * BB, DomTreeUpdater * DTU)

    Given an block with only a single landing pad and a unconditional branch

    try to find another basic block which this one can be merged with. This

    handles cases where we have multiple invokes with unique landing pads, but

    a shared handler.

    We specifically choose to not worry about merging non-empty blocks

    here. That is a PRE/scheduling problem and is best solved elsewhere. In

    practice, the optimizer produces empty landing pad blocks quite frequently

    when dealing with exception dense code. (see: instcombine, gvn, if-else

    sinking in this file)

    This is primarily a code size optimization. We need to avoid performing

    any transform which might inhibit optimization (such as our ability to

    specialize a particular handler via tail commoning). We do this by not

    merging any blocks which require us to introduce a phi. Since the same

    values are flowing through both blocks, we don't lose any ability to

    specialize. If anything, we make such specialization more likely.

    TODO - This transformation could remove entries from a phi in the target

    block when the inputs in the phi are the same for the two blocks being

    merged. In some cases, this could result in removal of the PHI entirely.

    Defined at line 8314 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void printCoreNoteLLVMStyle (const CoreNote & Note, ScopedPrinter & W)

    Defined at line 8326 of file llvm/tools/llvm-readobj/ELFDumper.cpp

  • SDValue visitORCommutative (SelectionDAG & DAG, SDValue N0, SDValue N1, SDNode * N)

    OR combines for which the commuted variant will be tried as well.

    Defined at line 8336 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Expected readBlobInRecord (BitstreamCursor & Stream, unsigned int Block, unsigned int RecordID)

    Defined at line 8354 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • void commuteMask (MutableArrayRef<int> Mask, const unsigned int NumElems)

    Defined at line 8375 of file llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  • SDValue ExpandHorizontalBinOp (const SDValue & V0, const SDValue & V1, const SDLoc & DL, SelectionDAG & DAG, unsigned int X86Opcode, bool Mode, bool isUndefLO, bool isUndefHI)

    Emit a sequence of two 128-bit horizontal add/sub followed by

    a concat_vector.

    This is a helper function of LowerToHorizontalOp().

    This function expects two 256-bit vectors called V0 and V1.

    At first, each vector is split into two separate 128-bit vectors.

    Then, the resulting 128-bit vectors are used to implement two

    horizontal binary operations.

    The kind of horizontal binary operation is defined by

    specifies how the 128-bit parts of V0 and V1 are passed in input to

    the two new horizontal binop.

    When Mode is set, the first horizontal binop dag node would take as input

    the lower 128-bit of V0 and the upper 128-bit of V0. The second

    horizontal binop dag node would take as input the lower 128-bit of V1

    and the upper 128-bit of V1.

    Example:

    HADD V0_LO, V0_HI

    HADD V1_LO, V1_HI

    Otherwise, the first horizontal binop dag node takes as input the lower

    128-bit of V0 and the lower 128-bit of V1, and the second horizontal binop

    dag node takes the upper 128-bit of V0 and the upper 128-bit of V1.

    Example:

    HADD V0_LO, V1_LO

    HADD V0_HI, V1_HI

    If

    is set, then the algorithm propagates UNDEF to the lower

    128-bits of the result. If

    is set, then UNDEF is propagated to

    the upper 128-bits of the result.

    Defined at line 8383 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * foldFabsWithFcmpZero (FCmpInst & I, InstCombinerImpl & IC)

    Optimize fabs(X) compared with zero.

    Defined at line 8384 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool isKnownNonNaN (const Value * V, FastMathFlags FMF)

    Defined at line 8421 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isAddSubOrSubAdd (const BuildVectorSDNode * BV, const X86Subtarget & Subtarget, SelectionDAG & DAG, SDValue & Opnd0, SDValue & Opnd1, unsigned int & NumExtracts, bool & IsSubAdd, bool & HasAllowContract)

    Returns true iff

    builds a vector with the result equivalent to

    the result of ADDSUB/SUBADD operation.

    If true is returned then the operands of ADDSUB = Opnd0 +- Opnd1

    (SUBADD = Opnd0 -+ Opnd1) operation are written to the parameters

    and

    Defined at line 8424 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • BasicBlock * allPredecessorsComeFromSameSource (BasicBlock * BB)

    Defined at line 8428 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void PushLoopPHIs (const Loop * L, SmallVectorImpl<Instruction *> & Worklist, SmallPtrSetImpl<Instruction *> & Visited)

    Push PHI nodes in the header of the given loop onto the given Worklist.

    Defined at line 8434 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool isKnownNonZero (const Value * V)

    Defined at line 8444 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool mergeNestedCondBranch (BranchInst * BI, DomTreeUpdater * DTU)

    Fold the following pattern:

    bb0:

    br i1 %cond1, label %bb1, label %bb2

    bb1:

    br i1 %cond2, label %bb3, label %bb4

    bb2:

    br i1 %cond2, label %bb4, label %bb3

    bb3:

    ...

    bb4:

    ...

    into

    bb0:

    %cond = xor i1 %cond1, %cond2

    br i1 %cond, label %bb4, label %bb3

    bb3:

    ...

    bb4:

    ...

    NOTE: %cond2 always dominates the terminator of bb0.

    Defined at line 8459 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • SmallVector<MachineMemOperand *, 2> extractLoadMMOs (ArrayRef<MachineMemOperand *> MMOs, MachineFunction & MF)

    Defined at line 8463 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • SelectPatternResult matchFastFloatClamp (Predicate Pred, Value * CmpLHS, Value * CmpRHS, Value * TrueVal, Value * FalseVal, Value *& LHS, Value *& RHS)

    Match clamp pattern for float types without care about NaNs or signed zeros.

    Given non-min/max outer cmp/select from the clamp pattern this

    function recognizes if it can be substitued by a "canonical" min/max

    pattern.

    Defined at line 8465 of file llvm/lib/Analysis/ValueTracking.cpp

  • SmallVector<MachineMemOperand *, 2> extractStoreMMOs (ArrayRef<MachineMemOperand *> MMOs, MachineFunction & MF)

    Defined at line 8484 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • Instruction * foldSqrtWithFcmpZero (FCmpInst & I, InstCombinerImpl & IC)

    Optimize sqrt(X) compared with zero.

    Defined at line 8485 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • unsigned int getBroadcastOpcode (const X86FoldTableEntry * I, const TargetRegisterClass * RC, const X86Subtarget & STI)

    Defined at line 8505 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • SelectPatternResult matchClamp (Predicate Pred, Value * CmpLHS, Value * CmpRHS, Value * TrueVal, Value * FalseVal)

    Recognize variations of:

    CLAMP(v,l,h) ==> ((v)

    <

    (l) ? (l) : ((v) > (h) ? (h) : (v)))

    Defined at line 8515 of file llvm/lib/Analysis/ValueTracking.cpp

  • SDValue getMemsetValue (SDValue Value, EVT VT, SelectionDAG & DAG, const SDLoc & dl)

    getMemsetValue - Vectorized representation of the memset value

    operand.

    Defined at line 8519 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool splitMergedValStore (StoreInst & SI, const DataLayout & DL, const TargetLowering & TLI)

    For the instruction sequence of store below, F and I values

    are bundled together as an i64 value before being stored into memory.

    Sometimes it is more efficient to generate separate stores for F and I,

    which can remove the bitwise instructions or sink them to colder places.

    (store (or (zext (bitcast F to i32) to i64),

    (shl (zext I to i64), 32)), addr) -->

    (store F, addr) and (store I, addr+4)

    Similarly, splitting for other merged store can also be beneficial, like:

    For pair of {i32, i32}, i64 store --> two i32 stores.

    For pair of {i32, i16}, i64 store --> two i32 stores.

    For pair of {i16, i16}, i32 store --> two i16 stores.

    For pair of {i16, i8}, i32 store --> two i16 stores.

    For pair of {i8, i8}, i16 store --> two i8 stores.

    We allow each target to determine specifically which kind of splitting is

    supported.

    The store patterns are commonly seen from the simple code snippet below

    if only std::make_pair(...) is sroa transformed before inlined into hoo.

    void goo(const std::pair

    <int

    , float>

    &

    );

    hoo() {

    ...

    goo(std::make_pair(tmp, ftmp));

    ...

    }

    Although we already have similar splitting in DAG Combine, we duplicate

    it in CodeGenPrepare to catch the case in which pattern is across

    multiple BBs. The logic in DAG Combine is kept to catch case generated

    during code expansion.

    Defined at line 8540 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool isFMAddSubOrFMSubAdd (const X86Subtarget & Subtarget, SelectionDAG & DAG, SDValue & Opnd0, SDValue & Opnd1, SDValue & Opnd2, unsigned int ExpectedUses, bool AllowSubAddOrAddSubContract)

    Returns true if is possible to fold MUL and an idiom that has already been

    recognized as ADDSUB/SUBADD(

    into

    FMADDSUB/FMSUBADD(x, y,

    If (and only if) true is returned, the

    operands of FMADDSUB/FMSUBADD are written to parameters

    Prior to calling this function it should be known that there is some

    SDNode that potentially can be replaced with an X86ISD::ADDSUB operation

    using

    and

    as operands. Also, this method is called

    before replacement of such SDNode with ADDSUB operation. Thus the number

    of

    uses is expected to be equal to 2.

    For example, this function may be called for the following IR:

    %AB = fmul fast

    <

    2 x double> %A, %B

    %Sub = fsub fast

    <

    2 x double> %AB, %C

    %Add = fadd fast

    <

    2 x double> %AB, %C

    %Addsub = shufflevector

    <

    2 x double> %Sub,

    <

    2 x double> %Add,

    <

    2 x i32>

    <i32

    0, i32 3>

    There is a def for %Addsub here, which potentially can be replaced by

    X86ISD::ADDSUB operation:

    %Addsub = X86ISD::ADDSUB %AB, %C

    and such ADDSUB can further be replaced with FMADDSUB:

    %Addsub = FMADDSUB %A, %B, %C.

    The main reason why this method is called before the replacement of the

    recognized ADDSUB idiom with ADDSUB operation is that such replacement

    is illegal sometimes. E.g. 512-bit ADDSUB is not available, while 512-bit

    FMADDSUB is.

    Defined at line 8542 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * foldFCmpFNegCommonOp (FCmpInst & I)

    Defined at line 8545 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • void emitTargetCall (OpenMPIRBuilder & OMPBuilder, IRBuilderBase & Builder, InsertPoint AllocaIP, OpenMPIRBuilder::TargetDataInfo & Info, const OpenMPIRBuilder::TargetKernelDefaultAttrs & DefaultAttrs, const OpenMPIRBuilder::TargetKernelRuntimeAttrs & RuntimeAttrs, Value * IfCond, Function * OutlinedFn, Constant * OutlinedFnID, SmallVectorImpl<Value *> & Args, OpenMPIRBuilder::GenMapInfoCallbackTy GenMapInfoCB, OpenMPIRBuilder::CustomMapperCallbackTy CustomMapperCB, const int & Dependencies, bool HasNoWait, Value * DynCGroupMem, OMPDynGroupprivateFallbackType DynCGroupMemFallback)

    Defined at line 8548 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  • SelectPatternResult matchMinMaxOfMinMax (Predicate Pred, Value * CmpLHS, Value * CmpRHS, Value * TVal, Value * FVal, unsigned int Depth)

    Recognize variations of:

    a

    <

    c ? min(a,b) : min(b,c) ==> min(min(a,b),min(b,c))

    Defined at line 8551 of file llvm/lib/Analysis/ValueTracking.cpp

  • unsigned int getISDForVPIntrinsic (const VPIntrinsic & VPIntrin)

    Defined at line 8554 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • SDValue getMemsetStringVal (EVT VT, const SDLoc & dl, SelectionDAG & DAG, const TargetLowering & TLI, const ConstantDataArraySlice & Slice)

    getMemsetStringVal - Similar to getMemsetValue. Except this is only

    used when a memcpy is turned into a memset when the source is a constant

    string ptr.

    Defined at line 8560 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • Instruction * foldFCmpFSubIntoFCmp (FCmpInst & I, Instruction * LHSI, Constant * RHSC, InstCombinerImpl & CI)

    Defined at line 8564 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • SDValue lowerToAddSubOrFMAddSub (const BuildVectorSDNode * BV, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to fold a build_vector that performs an 'addsub' or 'fmaddsub' or

    'fsubadd' operation accordingly to X86ISD::ADDSUB or X86ISD::FMADDSUB or

    X86ISD::FMSUBADD node.

    Defined at line 8570 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void PrintSegmentCommand (uint32_t cmd, uint32_t cmdsize, StringRef SegName, uint64_t vmaddr, uint64_t vmsize, uint64_t fileoff, uint64_t filesize, uint32_t maxprot, uint32_t initprot, uint32_t nsects, uint32_t flags, uint32_t object_size, bool verbose)

    Defined at line 8587 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Expected getEnableSplitLTOUnitAndUnifiedFlag (BitstreamCursor & Stream, unsigned int ID)

    Defined at line 8602 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • bool isHopBuildVector (const BuildVectorSDNode * BV, SelectionDAG & DAG, unsigned int & HOpcode, SDValue & V0, SDValue & V1)

    Defined at line 8612 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * foldFCmpWithFloorAndCeil (FCmpInst & I, InstCombinerImpl & IC)

    Defined at line 8613 of file llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp

  • bool isMemSrcFromConstant (SDValue Src, ConstantDataArraySlice & Slice)

    Returns true if memcpy source is constant data.

    Defined at line 8615 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDValue stripConstantMask (const SelectionDAG & DAG, SDValue Op, SDValue & Mask)

    Defined at line 8617 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool matchRotateHalf (const SelectionDAG & DAG, SDValue Op, SDValue & Shift, SDValue & Mask)

    Match "(X shl/srl V1) & V2" where V2 may not be present.

    Defined at line 8628 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool shouldLowerMemFuncForSize (const MachineFunction & MF, SelectionDAG & DAG)

    Defined at line 8633 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool GEPSequentialConstIndexed (GetElementPtrInst * GEP)

    Return true if the GEP has two operands, the first operand is of a sequential

    type, and the second operand is a constant.

    Defined at line 8638 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • void chainLoadsAndStoresForMemcpy (SelectionDAG & DAG, const SDLoc & dl, SmallVector<SDValue, 32> & OutChains, unsigned int From, unsigned int To, SmallVector<SDValue, 16> & OutLoadChains, SmallVector<SDValue, 16> & OutStoreChains)

    Defined at line 8642 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • Value * getNotValue (Value * V)

    If the input value is the result of a 'not' op, constant integer, or vector

    splat of a constant integer, return the bitwise-not source value.

    TODO: This could be extended to handle non-splat vector integer constants.

    Defined at line 8647 of file llvm/lib/Analysis/ValueTracking.cpp

  • Predicate minMaxToCompare (unsigned int Opc)

    Defined at line 8647 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • SelectPatternResult matchMinMax (Predicate Pred, Value * CmpLHS, Value * CmpRHS, Value * TrueVal, Value * FalseVal, Value *& LHS, Value *& RHS, unsigned int Depth)

    Match non-obvious integer minimum and maximum sequences.

    Defined at line 8660 of file llvm/lib/Analysis/ValueTracking.cpp

  • SDValue extractShiftForRotate (SelectionDAG & DAG, SDValue OppShift, SDValue ExtractFrom, SDValue & Mask, const SDLoc & DL)

    Helper function for visitOR to extract the needed side of a rotate idiom

    from a shl/srl/mul/udiv. This is meant to handle cases where

    InstCombine merged some outside op with one of the shifts from

    the rotate pattern.

    (or (add v v) (shrl v bitwidth-1)):

    expands (add v v) -> (shl v 1)

    (or (mul v c0) (shrl (mul v c1) c2)):

    expands (mul v c0) -> (shl (mul v c1) c3)

    (or (udiv v c0) (shl (udiv v c1) c2)):

    expands (udiv v c0) -> (shrl (udiv v c1) c3)

    (or (shl v c0) (shrl (shl v c1) c2)):

    expands (shl v c0) -> (shl (shl v c1) c3)

    (or (shrl v c0) (shl (shrl v c1) c2)):

    expands (shrl v c0) -> (shrl (shrl v c1) c3)

    Such that in all cases, c3+c2==bitwidth(op v c1).

    Defined at line 8662 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue getMemcpyLoadsAndStores (SelectionDAG & DAG, const SDLoc & dl, SDValue Chain, SDValue Dst, SDValue Src, uint64_t Size, Align Alignment, bool isVol, bool AlwaysInline, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo, const AAMDNodes & AAInfo, BatchAAResults * BatchAA)

    Defined at line 8667 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • StringRef ordinalName (const object::MachOObjectFile * , int )

    Defined at line 10408 of file llvm/tools/llvm-objdump/MachODump.cpp

  • VarArgHelper * CreateVarArgHelper (Function & Func, MemorySanitizer & Msan, MemorySanitizerVisitor & Visitor)

    Defined at line 8759 of file llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

  • bool passingValueIsAlwaysUndefined (Value * V, Instruction * I, bool PtrValueMayBeModified)

    Check if passing a value to an instruction will cause undefined behavior.

    Defined at line 8671 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void DisassembleMachO (StringRef Filename, MachOObjectFile * MachOOF, StringRef DisSegName, StringRef DisSectName)

    Defined at line 7244 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool programUndefinedIfUndefOrPoison (const Value * V, bool PoisonOnly)

    Defined at line 8319 of file llvm/lib/Analysis/ValueTracking.cpp

  • void PrintSection (const char * sectname, const char * segname, uint64_t addr, uint64_t size, uint32_t offset, uint32_t align, uint32_t reloff, uint32_t nreloc, uint32_t flags, uint32_t reserved1, uint32_t reserved2, uint32_t cmd, const char * sg_segname, uint32_t filetype, uint32_t object_size, bool verbose)

    Defined at line 8692 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Expected getSingleModule (MemoryBufferRef Buffer)

    Defined at line 8697 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp

  • SDValue getHopForBuildVector (const BuildVectorSDNode * BV, const SDLoc & DL, SelectionDAG & DAG, unsigned int HOpcode, SDValue V0, SDValue V1)

    Defined at line 8701 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool tryUnmergingGEPsAcrossIndirectBr (GetElementPtrInst * GEPI, const TargetTransformInfo * TTI)

    Try unmerging GEPs to reduce liveness interference (register pressure) across

    IndirectBr edges. Since IndirectBr edges tend to touch on many blocks,

    reducing liveness interference across those edges benefits global register

    allocation. Currently handles only certain cases.

    For example, unmerge %GEPI and %UGEPI as below.

    ---------- BEFORE ----------

    SrcBlock:

    ...

    %GEPIOp = ...

    ...

    %GEPI = gep %GEPIOp, Idx

    ...

    indirectbr ... [ label %DstB0, label %DstB1, ... label %DstBi ... ]

    (* %GEPI is alive on the indirectbr edges due to other uses ahead)

    (* %GEPIOp is alive on the indirectbr edges only because of it's used by

    %UGEPI)

    DstB0: ... (there may be a gep similar to %UGEPI to be unmerged)

    DstB1: ... (there may be a gep similar to %UGEPI to be unmerged)

    ...

    DstBi:

    ...

    %UGEPI = gep %GEPIOp, UIdx

    ...

    ---------------------------

    ---------- AFTER ----------

    SrcBlock:

    ... (same as above)

    (* %GEPI is still alive on the indirectbr edges)

    (* %GEPIOp is no longer alive on the indirectbr edges as a result of the

    unmerging)

    ...

    DstBi:

    ...

    %UGEPI = gep %GEPI, (UIdx-Idx)

    ...

    ---------------------------

    The register pressure on the IndirectBr edges is reduced because %GEPIOp is

    no longer alive on them.

    We try to unmerge GEPs here in CodGenPrepare, as opposed to limiting merging

    of GEPs in the first place in InstCombiner::visitGetElementPtrInst() so as

    not to disable further simplications and optimizations as a result of GEP

    merging.

    Note this unmerging may increase the length of the data flow critical path

    (the path from %GEPIOp to %UGEPI would go through %GEPI), which is a tradeoff

    between the register pressure and the length of data-flow critical

    path. Restricting this to the uncommon IndirectBr case would minimize the

    impact of potentially longer critical path, if any, and the impact on compile

    time.

    Defined at line 8701 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • SDValue LowerToHorizontalOp (const BuildVectorSDNode * BV, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower BUILD_VECTOR to a horizontal add/sub operation if possible.

    Defined at line 8739 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchRotateSub (SDValue Pos, SDValue Neg, unsigned int EltSize, SelectionDAG & DAG, bool IsRotate, bool FromAdd)

    Return true if we can prove that, whenever Neg and Pos are both in the

    range [0, EltSize), Neg == (Pos == 0 ? 0 : EltSize - Pos). This means that

    for two opposing shifts shift1 and shift2 and a value X with OpBits bits:

    (or (shift1 X, Neg), (shift2 X, Pos))

    reduces to a rotate in direction shift2 by Pos or (equivalently) a rotate

    in direction shift1 by Neg. The range [0, EltSize) means that we only need

    to consider shift amounts with defined behavior.

    The IsRotate flag should be set when the LHS of both shifts is the same.

    Otherwise if matching a general funnel shift, it should be clear.

    Defined at line 8780 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool optimizeBranch (BranchInst * Branch, const TargetLowering & TLI, SmallPtrSet<BasicBlock *, 32> & FreshBBs, bool IsHugeFunc)

    Defined at line 8806 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool removeUndefIntroducingPredecessor (BasicBlock * BB, DomTreeUpdater * DTU, AssumptionCache * AC)

    If BB has an incoming value that will always trigger undefined behavior

    (eg. null pointer dereference), remove the branch leading here.

    Defined at line 8809 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  • void PrintSymtabLoadCommand (symtab_command st, bool Is64Bit, uint32_t object_size)

    Defined at line 8826 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue lowerBuildVectorToBitOp (BuildVectorSDNode * Op, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    If a BUILD_VECTOR's source elements all apply the same bit operation and

    one of their operands is constant, lower to a pair of BUILD_VECTOR and

    just apply the bit to the vectors.

    NOTE: Its not in our interest to start make a general purpose vectorizer

    from this, but enough scalar bit operations are created from the later

    legalization + scalarization stages to need basic support.

    Defined at line 8863 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getMemmoveLoadsAndStores (SelectionDAG & DAG, const SDLoc & dl, SDValue Chain, SDValue Dst, SDValue Src, uint64_t Size, Align Alignment, bool isVol, bool AlwaysInline, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo, const AAMDNodes & AAInfo)

    Defined at line 8868 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void PrintDysymtabLoadCommand (dysymtab_command dyst, uint32_t nsyms, uint32_t object_size, bool Is64Bit)

    Defined at line 8872 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SelectPatternResult matchSelectPattern (Predicate Pred, FastMathFlags FMF, Value * CmpLHS, Value * CmpRHS, Value * TrueVal, Value * FalseVal, Value *& LHS, Value *& RHS, unsigned int Depth)

    Defined at line 8895 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional isFCmpEqualZero (FPClassTest Test, const fltSemantics & Semantics, const MachineFunction & MF)

    Returns a true value if if this FPClassTest can be performed with an ordered

    fcmp to 0, and a false value if it's an unordered fcmp to 0. Returns

    std::nullopt if it cannot be performed as a compare with 0.

    Defined at line 8907 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • SDValue lowerBuildVectorAsBlend (BuildVectorSDNode * BVOp, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Attempt to lower a BUILD_VECTOR of scalar values to a shuffle of splats

    representing a blend.

    Defined at line 8962 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getMemsetStores (SelectionDAG & DAG, const SDLoc & dl, SDValue Chain, SDValue Dst, SDValue Src, uint64_t Size, Align Alignment, bool isVol, bool AlwaysInline, MachinePointerInfo DstPtrInfo, const AAMDNodes & AAInfo)

    Lower the call to 'memset' intrinsic function into a series of store

    operations.

    The function tries to replace 'llvm.memset' intrinsic with several store

    operations and value calculation code. This is usually profitable for small

    memory size or when the semantic requires inlining.

    Parameters

    DAG Selection DAG where lowered code is placed.
    dl Link to corresponding IR location.
    Chain Control flow dependency.
    Dst Pointer to destination memory location.
    Src Value of byte to write into the memory.
    Size Number of bytes to write.
    Alignment Alignment of the destination in bytes.
    isVol True if destination is volatile.
    AlwaysInline Makes sure no function call is generated.
    DstPtrInfo IR information on the memory pointer.

    Defined at line 8993 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDValue widenBuildVector (BuildVectorSDNode * BVOp, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Widen a BUILD_VECTOR if the scalar operands are freely mergeable.

    Defined at line 9005 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void PrintDyldInfoLoadCommand (dyld_info_command dc, uint32_t object_size)

    Defined at line 9005 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue materializeVectorConstant (SDValue Op, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Create a vector constant without a load. SSE/AVX provide the bare minimum

    functionality to do this, so it's all zeros, all ones, or some derivation

    that is cheap to calculate.

    Defined at line 9057 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Value * lookThroughCastConst (CmpInst * CmpI, Type * SrcTy, Constant * C, Instruction::CastOps * CastOp)

    Defined at line 9069 of file llvm/lib/Analysis/ValueTracking.cpp

  • const uint16_t * lookup (unsigned int opcode, unsigned int domain, ArrayRef<uint16_t[3]> Table)

    FIXME: Some shuffle and unpack instructions have equivalents in different

    domains, but they require a bit more work than just switching opcodes.

    Defined at line 9078 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void PrintDyldLoadCommand (dylinker_command dyld, const char * Ptr)

    Defined at line 9079 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue createVariablePermute (MVT VT, SDValue SrcVec, SDValue IndicesVec, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Look for opportunities to create a VPERMV/VPERMILPV/PSHUFB variable permute

    from a vector of source values and a vector of extraction indices.

    The vectors might be manipulated to match the type of the permute op.

    Defined at line 9082 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • ScalarEpilogueLowering getScalarEpilogueLowering (Function * F, Loop * L, LoopVectorizeHints & Hints, bool OptForSize, TargetTransformInfo * TTI, TargetLibraryInfo * TLI, LoopVectorizationLegality & LVL, InterleavedAccessInfo * IAI)

    Determine how to lower the scalar epilogue, which depends on 1) optimising

    for minimum code-size, 2) predicate compiler options, 3) loop hints forcing

    predication, and 4) a TTI hook that analyses whether the loop is suitable

    for predication.

    Defined at line 9083 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • const uint16_t * lookupAVX512 (unsigned int opcode, unsigned int domain, ArrayRef<uint16_t[4]> Table)

    Defined at line 9086 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • bool AdjustBlendMask (unsigned int OldMask, unsigned int OldWidth, unsigned int NewWidth, unsigned int * pNewMask)

    Helper to attempt to widen/narrow blend masks.

    Defined at line 9096 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • void PrintUuidLoadCommand (uuid_command uuid)

    Defined at line 9102 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void checkAddrSpaceIsValidForLibcall (const TargetLowering * TLI, unsigned int AS)

    Defined at line 9109 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • void PrintRpathLoadCommand (rpath_command rpath, const char * Ptr)

    Defined at line 9118 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isInTailCallPositionWrapper (const CallInst * CI, const SelectionDAG * SelDAG, bool AllowReturnsFirstArg)

    Defined at line 9119 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool processLoopInVPlanNativePath (Loop * L, PredicatedScalarEvolution & PSE, LoopInfo * LI, DominatorTree * DT, LoopVectorizationLegality * LVL, TargetTransformInfo * TTI, TargetLibraryInfo * TLI, DemandedBits * DB, AssumptionCache * AC, OptimizationRemarkEmitter * ORE, function GetBFI, bool OptForSize, LoopVectorizeHints & Hints, LoopVectorizationRequirements & Requirements)

    Process the loop in the VPlan-native vectorization path. This path builds

    VPlan upfront in the vectorization pipeline, which allows to apply

    VPlan-to-VPlan transformations from the very beginning without modifying the

    input LLVM IR.

    Defined at line 9125 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void PrintVersionMinLoadCommand (version_min_command vd)

    Defined at line 9133 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void dumpOrder (const BoUpSLP::OrdersType & Order)

    Defined at line 9146 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void DbgInserterHelper (DbgVariableRecord * DVR, ilist_iterator_w_bits VI)

    Defined at line 9156 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • Value * lookThroughCast (CmpInst * CmpI, Value * V1, Value * V2, Instruction::CastOps * CastOp)

    Helps to match a select pattern in case of a type mismatch.

    The function processes the case when type of true and false values of a

    select instruction differs from type of the cmp instruction operands because

    of a cast instruction. The function checks if it is legal to move the cast

    operation after "select". If yes, it returns the new second value of

    "select" (with the assumption that cast is moved):

    1. As operand of cast instruction when both values of "select" are same cast

    instructions.

    2. As restored constant (by applying reverse cast operation) when the first

    value of the "select" is a cast operation and the second value is a

    constant. It is implemented in lookThroughCastConst().

    3. As one operand is cast instruction and the other is not. The operands in

    sel(cmp) are in different type integer.

    NOTE: We return only the new second value because the first value could be

    accessed as operand of cast instruction.

    Defined at line 9164 of file llvm/lib/Analysis/ValueTracking.cpp

  • void PrintNoteLoadCommand (note_command Nt)

    Defined at line 9178 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void checkMixedPrecision (Loop * L, OptimizationRemarkEmitter * ORE)

    Emit a remark if there are stores to floats that required a floating point

    extension. If the vectorized loop was generated with floating point there

    will be a performance penalty from the conversion overhead and the change in

    the vector width.

    Defined at line 9190 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void PrintBuildToolVersion (build_tool_version bv, bool verbose)

    Defined at line 9191 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void PrintBuildVersionLoadCommand (const MachOObjectFile * obj, build_version_command bd, bool verbose)

    Defined at line 9202 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void gatherPossiblyVectorizableLoads (const BoUpSLP & R, ArrayRef VL, const DataLayout & DL, ScalarEvolution & SE, const TargetTransformInfo & TTI, int & GatheredLoads, bool AddNew)

    Tries to find subvector of loads and builds new vector of only loads if can

    be profitable.

    Defined at line 9205 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue getMemCmpLoad (const Value * PtrVal, MVT LoadVT, SelectionDAGBuilder & Builder)

    Defined at line 9215 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • void PrintSourceVersionCommand (source_version_command sd)

    Defined at line 9233 of file llvm/tools/llvm-objdump/MachODump.cpp

  • InstructionCost calculateEarlyExitCost (VPCostContext & CostCtx, VPlan & Plan, ElementCount VF)

    For loops with uncountable early exits, find the cost of doing work when

    exiting the loop early, such as calculating the final exit values of

    variables used outside the loop.

    TODO: This is currently overly pessimistic because the loop may not take

    the early exit, but better to keep this conservative for now. In future,

    it might be possible to relax this by using branch probabilities.

    Defined at line 9237 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void PrintEntryPointCommand (entry_point_command ep)

    Defined at line 9255 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void scaleWeights (uint64_t & NewTrue, uint64_t & NewFalse)

    Scale down both weights to fit into uint32_t.

    Defined at line 9257 of file llvm/lib/CodeGen/CodeGenPrepare.cpp

  • bool isOutsideLoopWorkProfitable (GeneratedRTChecks & Checks, VectorizationFactor & VF, Loop * L, PredicatedScalarEvolution & PSE, VPCostContext & CostCtx, VPlan & Plan, ScalarEpilogueLowering SEL, optional VScale)

    This function determines whether or not it's still profitable to vectorize

    the loop given the extra work we have to do outside of the loop:

    1. Perform the runtime checks before entering the loop to ensure it's safe

    to vectorize.

    2. In the case of loops with uncountable early exits, we may have to do

    extra work when exiting the loop early, such as calculating the final

    exit values of variables used outside the loop.

    3. The middle block.

    Defined at line 9263 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void PrintEncryptionInfoCommand (encryption_info_command ec, uint32_t object_size)

    Defined at line 9266 of file llvm/tools/llvm-objdump/MachODump.cpp

  • std::optional<SDByteProvider> calculateByteProvider (SDValue Op, unsigned int Index, unsigned int Depth, optional VectorIndex, unsigned int StartingIndex)

    Defined at line 9266 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool canExpandVectorCTPOP (const TargetLowering & TLI, EVT VT)

    Only expand vector types if we have the appropriate vector bit operations.

    Defined at line 9277 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • void PrintEncryptionInfoCommand64 (encryption_info_command_64 ec, uint32_t object_size)

    Defined at line 9287 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void PrintLinkerOptionCommand (linker_option_command lo, const char * Ptr)

    Defined at line 9309 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void PrintSubFrameworkCommand (sub_framework_command sub, const char * Ptr)

    Defined at line 9340 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue LowerBUILD_VECTORAsVariablePermute (SDValue V, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Tries to lower a BUILD_VECTOR composed of extract-extract chains that can be

    reasoned to be a permutation of a vector by indices in a non-constant vector.

    (build_vector (extract_elt V, (extract_elt I, 0)),

    (extract_elt V, (extract_elt I, 1)),

    ...

    ->

    (vpermv I, V)

    TODO: Handle undefs

    TODO: Utilize pshufb and zero mask blending to support more efficient

    construction of vectors with constant-0 elements.

    Defined at line 9350 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void PrintSubUmbrellaCommand (sub_umbrella_command sub, const char * Ptr)

    Defined at line 9356 of file llvm/tools/llvm-objdump/MachODump.cpp

  • template <typename InstTy>
    bool matchTwoInputRecurrence (const PHINode * PN, InstTy *& Inst, Value *& Init, Value *& OtherOp)

    Defined at line 9371 of file llvm/lib/Analysis/ValueTracking.cpp

  • void PrintSubLibraryCommand (sub_library_command sub, const char * Ptr)

    Defined at line 9372 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void preparePlanForMainVectorLoop (VPlan & MainPlan, VPlan & EpiPlan)

    Prepare

    for vectorizing the main vector loop during epilogue

    vectorization. Remove ResumePhis from

    for inductions that

    don't have a corresponding wide induction in

    Defined at line 9380 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void PrintSubClientCommand (sub_client_command sub, const char * Ptr)

    Defined at line 9388 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void PrintRoutinesCommand (routines_command r)

    Defined at line 9404 of file llvm/tools/llvm-objdump/MachODump.cpp

  • unsigned int littleEndianByteAt (unsigned int BW, unsigned int i)

    Defined at line 9407 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • unsigned int bigEndianByteAt (unsigned int BW, unsigned int i)

    Defined at line 9411 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • optional isBigEndian (ArrayRef<int64_t> ByteOffsets, int64_t FirstOffset)

    Check if the bytes offsets we are looking at match with either big or

    little endian value loaded. Return true for big endian, false for little

    endian, and std::nullopt if match failed.

    Defined at line 9418 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void PrintRoutinesCommand64 (routines_command_64 r)

    Defined at line 9421 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isTruePredicate (Predicate Pred, const Value * LHS, const Value * RHS)

    Return true if "icmp Pred LHS RHS" is always true.

    Defined at line 9434 of file llvm/lib/Analysis/ValueTracking.cpp

  • void Print_x86_thread_state32_t (MachO::x86_thread_state32_t & cpu32)

    Defined at line 9438 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue stripTruncAndExt (SDValue Value)

    Look through one layer of truncate or extend.

    Defined at line 9440 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • ConstantInt * EvaluateConstantChrecAtConstant (const SCEVAddRecExpr * AddRec, ConstantInt * C, ScalarEvolution & SE)

    Defined at line 9448 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void Print_x86_thread_state64_t (MachO::x86_thread_state64_t & cpu64)

    Defined at line 9457 of file llvm/tools/llvm-objdump/MachODump.cpp

  • int preparePlanForEpilogueVectorLoop (VPlan & Plan, Loop * L, const int & ExpandedSCEVs, EpilogueLoopVectorizationInfo & EPI, LoopVectorizationCostModel & CM, ScalarEvolution & SE)

    Prepare

    for vectorizing the epilogue loop. That is, re-use expanded

    SCEVs from

    and set resume values for header recipes. Some

    reductions require creating new instructions to compute the resume values.

    They are collected in a vector and returned. They must be moved to the

    preheader of the vector epilogue loop, after created by the execution of

    Defined at line 9471 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void Print_mmst_reg (MachO::mmst_reg_t & r)

    Defined at line 9481 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void Print_xmm_reg (MachO::xmm_reg_t & r)

    Defined at line 9493 of file llvm/tools/llvm-objdump/MachODump.cpp

  • void Print_x86_float_state_t (MachO::x86_float_state64_t & fpu)

    Defined at line 9501 of file llvm/tools/llvm-objdump/MachODump.cpp

  • optional isImpliedCondOperands (Predicate Pred, const Value * ALHS, const Value * ARHS, const Value * BLHS, const Value * BRHS)

    Return true if "icmp Pred BLHS BRHS" is true whenever "icmp Pred

    ALHS ARHS" is true. Otherwise, return std::nullopt.

    Defined at line 9515 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional isImpliedCondCommonOperandWithCR (CmpPredicate LPred, const ConstantRange & LCR, CmpPredicate RPred, const ConstantRange & RCR)

    Return true if "icmp LPred X, LCR" implies "icmp RPred X, RCR" is true.

    Return false if "icmp LPred X, LCR" implies "icmp RPred X, RCR" is false.

    Otherwise, return std::nullopt if we can't infer anything.

    Defined at line 9555 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional isImpliedCondICmps (CmpPredicate LPred, const Value * L0, const Value * L1, CmpPredicate RPred, const Value * R0, const Value * R1, const DataLayout & DL, bool LHSIsTrue)

    Return true if LHS implies RHS (expanded to its components as "R0 RPred R1")

    is true. Return false if LHS implies RHS is false. Otherwise, return

    std::nullopt if we can't infer anything.

    Defined at line 9587 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool CanConstantFold (const Instruction * I)

    Return true if we can constant fold an instruction of the specified type,

    assuming that all operands were constants.

    Defined at line 9603 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void Print_x86_exception_state_t (MachO::x86_exception_state64_t & exc64)

    Defined at line 9614 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool canConstantEvolve (Instruction * I, const Loop * L)

    Determine whether this instruction can constant evolve within this loop

    assuming its operands can all constant evolve.

    Defined at line 9617 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void Print_arm_thread_state32_t (MachO::arm_thread_state32_t & cpu32)

    Defined at line 9620 of file llvm/tools/llvm-objdump/MachODump.cpp

  • PHINode * getConstantEvolvingPHIOperands (Instruction * UseInst, const Loop * L, int & PHIMap, unsigned int Depth)

    getConstantEvolvingPHIOperands - Implement getConstantEvolvingPHI by

    recursing through each instruction operand until reaching a loop header phi.

    Defined at line 9634 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void resolveFwdRef (ValueInfo * Fwd, ValueInfo & Resolved)

    Defined at line 9637 of file llvm/lib/AsmParser/LLParser.cpp

  • void Print_arm_thread_state64_t (MachO::arm_thread_state64_t & cpu64)

    Defined at line 9640 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Value * createInductionAdditionalBypassValues (PHINode * OrigPhi, const InductionDescriptor & II, int & BypassBuilder, const int & ExpandedSCEVs, Value * MainVectorTripCount, Instruction * OldInduction)

    Generate bypass values from the additional bypass block. Note that when the

    vectorized epilogue is skipped due to iteration count check, then the

    resume value for the induction variable comes from the trip count of the

    main vector loop, passed as the second argument.

    Defined at line 9643 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • void fixScalarResumeValuesFromBypass (BasicBlock * BypassBlock, Loop * L, VPlan & BestEpiPlan, LoopVectorizationLegality & LVL, const int & ExpandedSCEVs, Value * MainVectorTripCount)

    Defined at line 9666 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • PHINode * getConstantEvolvingPHI (Value * V, const Loop * L)

    getConstantEvolvingPHI - Given an LLVM value and a loop, return a PHI node

    in the loop that V is derived from. We allow arbitrary operations along the

    way, but the operands of an operation must either be constants or a value

    derived from a constant PHI. If this expression does not fit with these

    constraints, return null.

    Defined at line 9677 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void PrintThreadCommand (thread_command t, const char * Ptr, bool isLittleEndian, uint32_t cputype)

    Defined at line 9677 of file llvm/tools/llvm-objdump/MachODump.cpp

  • Constant * EvaluateExpression (Value * V, const Loop * L, int & Vals, const DataLayout & DL, const TargetLibraryInfo * TLI)

    EvaluateExpression - Given an expression that passes the

    getConstantEvolvingPHI predicate, evaluate its value assuming the PHI node

    in the loop has the value PHIVal. If we can't fold this expression for some

    reason, return null.

    Defined at line 9693 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • optional isImpliedCondFCmps (Predicate LPred, const Value * L0, const Value * L1, Predicate RPred, const Value * R0, const Value * R1, const DataLayout & DL, bool LHSIsTrue)

    Return true if LHS implies RHS (expanded to its components as "R0 RPred R1")

    is true. Return false if LHS implies RHS is false. Otherwise, return

    std::nullopt if we can't infer anything.

    Defined at line 9698 of file llvm/lib/Analysis/ValueTracking.cpp

  • void connectEpilogueVectorLoop (VPlan & EpiPlan, Loop * L, EpilogueLoopVectorizationInfo & EPI, DominatorTree * DT, LoopVectorizationLegality & LVL, int & ExpandedSCEVs, GeneratedRTChecks & Checks, ArrayRef InstsToMove)

    Connect the epilogue vector loop generated for

    to the main vector

    loop, after both plans have executed, updating branches from the iteration

    and runtime checks of the main loop, as well as updating various phis.

    contains instructions that need to be moved to the preheader of

    the epilogue vector loop.

    Defined at line 9708 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  • MachineInstrBuilder SwapN (unsigned int N, DstOp Dst, MachineIRBuilder & B, MachineInstrBuilder Src, const APInt & Mask)

    { (Src

    &

    Mask) >> N } | { (Src

    <

    <

    N)

    &

    Mask }

    Defined at line 9735 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • MachinePointerInfo InferPointerInfo (const MachinePointerInfo & Info, SelectionDAG & DAG, SDValue Ptr, int64_t Offset)

    InferPointerInfo - If the specified ptr/offset is a frame index, infer a

    MachinePointerInfo record from it. This is particularly useful because the

    code generator has many cases where it doesn't bother passing in a

    MachinePointerInfo to getLoad or getStore when it has "FI+Cst".

    Defined at line 9735 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • Constant * getOtherIncomingValue (PHINode * PN, BasicBlock * BB)

    If every incoming value to PN except the one for BB is a specific Constant,

    return that, else return nullptr.

    Defined at line 9735 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • MachinePointerInfo InferPointerInfo (const MachinePointerInfo & Info, SelectionDAG & DAG, SDValue Ptr, SDValue OffsetOp)

    InferPointerInfo - If the specified ptr/offset is a frame index, infer a

    MachinePointerInfo record from it. This is particularly useful because the

    code generator has many cases where it doesn't bother passing in a

    MachinePointerInfo to getLoad or getStore when it has "FI+Cst".

    Defined at line 9759 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • optional isImpliedCondAndOr (const Instruction * LHS, CmpPredicate RHSPred, const Value * RHSOp0, const Value * RHSOp1, const DataLayout & DL, bool LHSIsTrue, unsigned int Depth)

    Return true if LHS implies RHS is true. Return false if LHS implies RHS is

    false. Otherwise, return std::nullopt if we can't infer anything. We

    expect the RHS to be an icmp and the LHS to be an 'and', 'or', or a 'select'

    instruction.

    Defined at line 9762 of file llvm/lib/Analysis/ValueTracking.cpp

  • std::pair<size_t, size_t> generateKeySubkey (Value * V, const TargetLibraryInfo * TLI, function_ref<hash_code (size_t, LoadInst *)> LoadsSubkeyGenerator, bool AllowAlternate)

    Generates key/subkey pair for the given value to provide effective sorting

    of the values and better detection of the vectorizable values sequences. The

    keys/subkeys can be used for better sorting of the values themselves (keys)

    and in values subgroups (subkeys).

    Defined at line 9823 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void patchMatchingInput (const SDISelAsmOperandInfo & OpInfo, SDISelAsmOperandInfo & MatchingOpInfo, SelectionDAG & DAG)

    Make sure that the output operand

    and its corresponding input

    operand

    have compatible constraint types (otherwise error

    out).

    Defined at line 9832 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • SDValue LowerAVXCONCAT_VECTORS (SDValue Op, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    256-bit AVX can use the vinsertf128 instruction

    to create 256-bit vectors from two other 128-bit ones.

    TODO: Detect subvector broadcast here instead of DAG combine?

    Defined at line 9847 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getAddressForMemoryInput (SDValue Chain, const SDLoc & Location, SDISelAsmOperandInfo & OpInfo, SelectionDAG & DAG)

    Get a direct memory input to behave well as an indirect operand.

    This may introduce stores, hence the need for a

    Returns

    The (possibly updated) chain.

    Defined at line 9863 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • std::optional<unsigned int> getRegistersForValue (SelectionDAG & DAG, const SDLoc & DL, SDISelAsmOperandInfo & OpInfo, SDISelAsmOperandInfo & RefOpInfo)

    GetRegistersForValue - Assign registers (virtual or physical) for the

    specified operand. We prefer to assign virtual registers, to allow the

    register allocator to handle the assignment process. However, if the asm

    uses features that we can't model on machineinstrs, we have SDISel do the

    allocation. This produces generally horrible, but correct, code.

    OpInfo describes the operand

    RefOpInfo describes the matching operand if any, the operand otherwise

    Defined at line 9914 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • std::pair<Value *, bool> getDomPredecessorCondition (const Instruction * ContextI)

    Returns a pair (Condition, ConditionIsTrue), where Condition is a branch

    condition dominating ContextI or nullptr, if no condition is found.

    Defined at line 9916 of file llvm/lib/Analysis/ValueTracking.cpp

  • SDValue LowerCONCAT_VECTORSvXi1 (SDValue Op, const SDLoc & dl, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Returns true if the given node is a type promotion (by concatenating i1

    zeros) of the result of a node that already zeros all upper bits of

    k-register.

    TODO: Merge this with LowerAVXCONCAT_VECTORS?

    Defined at line 9920 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Constant * BuildConstantFromSCEV (const SCEV * V)

    This builds up a Constant using the ConstantExpr interface. That way, we

    will return Constants for objects which aren't represented by a

    SCEVConstant, because SCEVConstant is restricted to ConstantInt.

    Returns NULL if the SCEV isn't representable as a Constant.

    Defined at line 9936 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void setLimitsForBinOp (const BinaryOperator & BO, APInt & Lower, APInt & Upper, const InstrInfoQuery & IIQ, bool PreferSignedRange)

    Defined at line 9967 of file llvm/lib/Analysis/ValueTracking.cpp

  • SDValue LowerCONCAT_VECTORS (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 9993 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool IsElementEquivalent (int MaskSize, SDValue Op, SDValue ExpectedOp, int Idx, int ExpectedIdx)

    Checks whether the vector elements referenced by two shuffle masks are

    equivalent.

    Defined at line 10023 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • unsigned int findMatchingInlineAsmOperand (unsigned int OperandNo, const int & AsmNodeOperands)

    Defined at line 10024 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • int buildIntrinsicArgTypes (const CallInst * CI, const Intrinsic::ID ID, const unsigned int VF, unsigned int MinBW, const TargetTransformInfo * TTI)

    Builds the arguments types vector for the given call instruction with the

    given

    for the specified vector factor.

    Defined at line 10027 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • std::pair<InstructionCost, InstructionCost> getVectorCallCosts (CallInst * CI, FixedVectorType * VecTy, TargetTransformInfo * TTI, TargetLibraryInfo * TLI, ArrayRef ArgTys)

    Calculates the costs of vectorized intrinsic (if possible) and vectorized

    function (if possible) calls. Returns invalid cost for the corresponding

    calls, if they cannot be vectorized/will be scalarized.

    Defined at line 10052 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • void PrintDylibCommand (dylib_command dl, const char * Ptr)

    Defined at line 10054 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isFunction (SDValue Op)

    Defined at line 10079 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • void PrintLinkEditDataCommand (linkedit_data_command ld, uint32_t object_size)

    Defined at line 10099 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isNoopShuffleMask (ArrayRef<int> Mask)

    Tiny helper function to identify a no-op mask.

    This is a somewhat boring predicate function. It checks whether the mask

    array input, which is assumed to be a single-input shuffle mask of the kind

    used by the X86 shuffle instructions (not a fully general

    ShuffleVectorSDNode mask) requires any shuffles to occur. Both undef and an

    in-place shuffle are 'no-op's.

    Defined at line 10126 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isLaneCrossingShuffleMask (unsigned int LaneSizeInBits, unsigned int ScalarSizeInBits, ArrayRef<int> Mask)

    Test whether there are elements crossing LaneSizeInBits lanes in this

    shuffle mask.

    X86 divides up its shuffles into in-lane and cross-lane shuffle operations

    and we routinely test for these.

    Defined at line 10140 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void PrintLoadCommands (const MachOObjectFile * Obj, uint32_t filetype, uint32_t cputype, bool verbose)

    Defined at line 10140 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool is128BitLaneCrossingShuffleMask (MVT VT, ArrayRef<int> Mask)

    Test whether there are elements crossing 128-bit lanes in this

    shuffle mask.

    Defined at line 10156 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isMultiLaneShuffleMask (unsigned int LaneSizeInBits, unsigned int ScalarSizeInBits, ArrayRef<int> Mask)

    Test whether elements in each LaneSizeInBits lane in this shuffle mask come

    from multiple lanes - this is different to isLaneCrossingShuffleMask to

    better support 'repeated mask + lane permute' style shuffles.

    Defined at line 10163 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • std::optional<ParamLoadedValue> describeMOVrrLoadedValue (const MachineInstr & MI, Register DescribedReg, const TargetRegisterInfo * TRI)

    If

    overlaps with the MOVrr instruction's destination

    register then, if possible, describe the value in terms of the source

    register.

    Defined at line 10168 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • ConstantRange getRangeForIntrinsic (const IntrinsicInst & II, bool UseInstrInfo)

    Defined at line 10192 of file llvm/lib/Analysis/ValueTracking.cpp

  • bool isRepeatedShuffleMask (unsigned int LaneSizeInBits, MVT VT, ArrayRef<int> Mask, SmallVectorImpl<int> & RepeatedMask)

    Test whether a shuffle mask is equivalent within each sub-lane.

    This checks a shuffle mask to see if it is performing the same

    lane-relative shuffle in each sub-lane. This trivially implies

    that it is also not lane-crossing. It may however involve a blend from the

    same lane of a second vector.

    The specific repeated shuffle mask is populated in

    as it is

    non-trivial to compute in the face of undef lanes. The representation is

    suitable for use with existing 128-bit shuffles as entries from the second

    vector have been remapped to [LaneSize, 2*LaneSize).

    Defined at line 10200 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool is128BitLaneRepeatedShuffleMask (MVT VT, ArrayRef<int> Mask, SmallVectorImpl<int> & RepeatedMask)

    Test whether a shuffle mask is equivalent within each 128-bit lane.

    Defined at line 10229 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool is128BitLaneRepeatedShuffleMask (MVT VT, ArrayRef<int> Mask)

    Defined at line 10235 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool is256BitLaneRepeatedShuffleMask (MVT VT, ArrayRef<int> Mask, SmallVectorImpl<int> & RepeatedMask)

    Test whether a shuffle mask is equivalent within each 256-bit lane.

    Defined at line 10242 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isRepeatedTargetShuffleMask (unsigned int LaneSizeInBits, unsigned int EltSizeInBits, ArrayRef<int> Mask, SmallVectorImpl<int> & RepeatedMask)

    Test whether a target shuffle mask is equivalent within each sub-lane.

    Unlike isRepeatedShuffleMask we must respect SM_SentinelZero.

    Defined at line 10250 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const SCEV * SolveLinEquationWithOverflow (const APInt & A, const SCEV * B, SmallVectorImpl<const SCEVPredicate *> * Predicates, ScalarEvolution & SE, const Loop * L)

    Finds the minimum unsigned root of the following equation:

    A * X = B (mod N)

    where N = 2^BW and BW is the common bit width of A and B. The signedness of

    A and B isn't important.

    If the equation does not have a solution, SCEVCouldNotCompute is returned.

    Defined at line 10252 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • SDValue combineShiftOfShiftedLogic (SDNode * Shift, SelectionDAG & DAG)

    If we have a shift-by-constant of a bitwise logic op that itself has a

    shift-by-constant operand with identical opcode, we may be able to convert

    that into 2 independent shifts followed by the logic op. This is a

    throughput improvement.

    Defined at line 10264 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void PrintMachHeader (const MachOObjectFile * Obj, bool verbose)

    Defined at line 10279 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isRepeatedTargetShuffleMask (unsigned int LaneSizeInBits, MVT VT, ArrayRef<int> Mask, SmallVectorImpl<int> & RepeatedMask)

    Test whether a target shuffle mask is equivalent within each sub-lane.

    Unlike isRepeatedShuffleMask we must respect SM_SentinelZero.

    Defined at line 10287 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool shouldLowerMemFuncForSize (const MachineFunction & MF)

    Defined at line 10294 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • bool isShuffleEquivalent (ArrayRef<int> Mask, ArrayRef<int> ExpectedMask, SDValue V1, SDValue V2)

    Checks whether a shuffle mask is equivalent to an explicit list of

    arguments.

    This is a fast way to test a shuffle mask against a fixed pattern:

    if (isShuffleEquivalent(Mask, 3, 2, {1, 0})) { ... }

    It returns true if the mask is exactly as wide as the argument list, and

    each element of the mask is either -1 (signifying undef) or the value given

    in the argument.

    Defined at line 10304 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool findGISelOptimalMemOpLowering (int & MemOps, unsigned int Limit, const MemOp & Op, unsigned int DstAS, unsigned int SrcAS, const AttributeList & FuncAttributes, const TargetLowering & TLI)

    Returns a list of types to use for memory op lowering in MemOps. A partial

    port of findOptimalMemOpLowering in TargetLowering.

    Defined at line 10304 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • ConstantRange getRangeForSelectPattern (const SelectInst & SI, const InstrInfoQuery & IIQ)

    Defined at line 10305 of file llvm/lib/Analysis/ValueTracking.cpp

  • std::optional<std::tuple<APInt, APInt, APInt, APInt, unsigned int>> GetQuadraticEquation (const SCEVAddRecExpr * AddRec)

    For a given quadratic addrec, generate coefficients of the corresponding

    quadratic equation, multiplied by a common value to ensure that they are

    integers.

    The returned value is a tuple { A, B, C, M, BitWidth }, where

    Ax^2 + Bx + C is the quadratic function, M is the value that A, B and C

    were multiplied by, and BitWidth is the bit width of the original addrec

    coefficients.

    This function returns std::nullopt if the addrec coefficients are not

    compile- time constants.

    Defined at line 10319 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void printMachOExportsTrie (const object::MachOObjectFile * Obj)

    ===----------------------------------------------------------------------===//

    export trie dumping

    ===----------------------------------------------------------------------===//

    Defined at line 10326 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isTargetShuffleEquivalent (MVT VT, ArrayRef<int> Mask, ArrayRef<int> ExpectedMask, const SelectionDAG & DAG, SDValue V1, SDValue V2)

    Checks whether a target shuffle mask is equivalent to an explicit pattern.

    The masks must be exactly the same width.

    If an element in Mask matches SM_SentinelUndef (-1) then the corresponding

    value in ExpectedMask is always accepted. Otherwise the indices must match.

    SM_SentinelZero is accepted as a valid negative index but must match in

    both, or via a known bits test.

    Defined at line 10336 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void setLimitForFPToI (const Instruction * I, APInt & Lower, APInt & Upper)

    Defined at line 10352 of file llvm/lib/Analysis/ValueTracking.cpp

  • Register getMemsetValue (Register Val, LLT Ty, MachineIRBuilder & MIB)

    Get a vectorized representation of the memset value operand, GISel edition.

    Defined at line 10370 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

  • optional MinOptional (optional X, optional Y)

    Helper function to compare optional APInts:

    (a) if X and Y both exist, return min(X, Y),

    (b) if neither X nor Y exist, return std::nullopt,

    (c) if exactly one of X and Y exists, return that value.

    Defined at line 10373 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void printMachORebaseTable (object::MachOObjectFile * Obj)

    ===----------------------------------------------------------------------===//

    rebase table dumping

    ===----------------------------------------------------------------------===//

    Defined at line 10391 of file llvm/tools/llvm-objdump/MachODump.cpp

  • optional TruncIfPossible (optional X, unsigned int BitWidth)

    Helper function to truncate an optional APInt to a given BitWidth.

    When solving addrec-related equations, it is preferable to return a value

    that has the same bit width as the original addrec's coefficients. If the

    solution fits in the original bit width, truncate it (except for i1).

    Returning a value of a different bit width may inhibit some optimizations.

    In general, a solution to a quadratic equation generated from an addrec

    may require BW+1 bits, where BW is the bit width of the addrec's

    coefficients. The reason is that the coefficients of the quadratic

    equation are BW+1 bits wide (to avoid truncation when converting from

    the addrec to the equation).

    Defined at line 10397 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool isUnpackWdShuffleMask (ArrayRef<int> Mask, MVT VT, const SelectionDAG & DAG)

    Check if the shuffle mask is suitable for the AVX vpunpcklwd or vpunpckhwd

    instructions.

    Defined at line 10403 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool is128BitUnpackShuffleMask (ArrayRef<int> Mask, const SelectionDAG & DAG)

    Defined at line 10419 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • optional SolveQuadraticAddRecExact (const SCEVAddRecExpr * AddRec, ScalarEvolution & SE)

    Let c(n) be the value of the quadratic chrec {L,+,M,+,N} after n

    iterations. The values L, M, N are assumed to be signed, and they

    should all have the same bit widths.

    Find the least n >= 0 such that c(n) = 0 in the arithmetic modulo 2^BW,

    where BW is the bit width of the addrec's coefficients.

    If the calculated value is a BW-bit integer (for BW > 1), it will be

    returned as such, otherwise the bit width of the returned value may

    be greater than BW.

    This function returns std::nullopt if

    (a) the addrec coefficients are not constant, or

    (b) SolveQuadraticEquationWrap was unable to find a solution. For cases

    like x^2 = 5, no integer solutions exist, in other cases an integer

    solution may exist, but SolveQuadraticEquationWrap may fail to find it.

    Defined at line 10421 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void printMachOBindTable (object::MachOObjectFile * Obj)

    ===----------------------------------------------------------------------===//

    bind table dumping

    ===----------------------------------------------------------------------===//

    Defined at line 10435 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool hasIdenticalHalvesShuffleMask (ArrayRef<int> Mask)

    Return true if a shuffle mask chooses elements identically in its top and

    bottom halves. For example, any splat mask has the same top and bottom

    halves. If an element is undefined in only one half of the mask, the halves

    are not considered identical.

    Defined at line 10444 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void addValueAffectedByCondition (Value * V, function_ref<void (Value *)> InsertAffected)

    Defined at line 10449 of file llvm/lib/Analysis/ValueTracking.cpp

  • optional SolveQuadraticAddRecRange (const SCEVAddRecExpr * AddRec, const ConstantRange & Range, ScalarEvolution & SE)

    Let c(n) be the value of the quadratic chrec {0,+,M,+,N} after n

    iterations. The values M, N are assumed to be signed, and they

    should all have the same bit widths.

    Find the least n such that c(n) does not belong to the given range,

    while c(n-1) does.

    This function returns std::nullopt if

    (a) the addrec coefficients are not constant, or

    (b) SolveQuadraticEquationWrap was unable to find a solution for the

    bounds of the range.

    Defined at line 10454 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • unsigned int getV4X86ShuffleImm (ArrayRef<int> Mask)

    Get a 4-lane 8-bit shuffle immediate for a mask.

    This helper function produces an 8-bit shuffle immediate corresponding to

    the ubiquitous shuffle encoding scheme used in x86 instructions for

    shuffling 4 lanes. It can be used with most of the PSHUF instructions for

    example.

    NB: We rely heavily on "undef" masks preserving the input lane.

    Defined at line 10462 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void printMachOLazyBindTable (object::MachOObjectFile * Obj)

    ===----------------------------------------------------------------------===//

    lazy bind table dumping

    ===----------------------------------------------------------------------===//

    Defined at line 10466 of file llvm/tools/llvm-objdump/MachODump.cpp

  • SDValue getV4X86ShuffleImm8ForMask (ArrayRef<int> Mask, const SDLoc & DL, SelectionDAG & DAG)

    Defined at line 10486 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void printMachOWeakBindTable (object::MachOObjectFile * Obj)

    ===----------------------------------------------------------------------===//

    weak bind table dumping

    ===----------------------------------------------------------------------===//

    Defined at line 10491 of file llvm/tools/llvm-objdump/MachODump.cpp

  • unsigned int getSHUFPDImm (ArrayRef<int> Mask)

    Canonicalize SHUFPD mask to improve chances of further folding.

    Mask elements are assumed to be -1, 0 or 1 to match the SHUFPD lo/hi pattern.

    Defined at line 10493 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getSHUFPDImmForMask (ArrayRef<int> Mask, const SDLoc & DL, SelectionDAG & DAG)

    Defined at line 10523 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const char * get_dyld_bind_info_symbolname (uint64_t ReferenceValue, struct DisassembleInfo * info)

    get_dyld_bind_info_symbolname() is used for disassembly and passed an

    address, ReferenceValue, in the Mach-O file and looks in the dyld bind

    information for that address. If the address is found its binding symbol

    name is returned. If not nullptr is returned.

    Defined at line 10523 of file llvm/tools/llvm-objdump/MachODump.cpp

  • bool isNonZeroElementsInOrder (const APInt & Zeroable, ArrayRef<int> Mask, const EVT & VectorType, bool & IsZeroSideLeft)

    The Shuffle result is as follow:

    0*a[0]0*a[1]...0*a[n] , n >=0 where a[] elements in a ascending order.

    Each Zeroable's element correspond to a particular Mask's element.

    As described in computeZeroableShuffleElements function.

    The function looks for a sub-mask that the nonzero elements are in

    increasing order. If such sub-mask exist. The function returns true.

    Defined at line 10535 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleWithPSHUFB (const SDLoc & DL, MVT VT, ArrayRef<int> Mask, SDValue V1, SDValue V2, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower a shuffle with a single PSHUFB of V1 or V2.

    Defined at line 10566 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • std::pair<Instruction *, Instruction *> getMainAltOpsNoStateVL (ArrayRef VL)

    Returns main/alternate instructions for the given

    Unlike

    getSameOpcode supports non-compatible instructions for better SplitVectorize

    node support.

    Defined at line 10590 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue lowerShuffleWithEXPAND (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    X86 has dedicated shuffle that can be lowered to VEXPAND

    Defined at line 10624 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool tryToFindDuplicates (SmallVectorImpl<Value *> & VL, SmallVectorImpl<int> & ReuseShuffleIndices, const TargetTransformInfo & TTI, const TargetLibraryInfo & TLI, const InstructionsState & S, const BoUpSLP::EdgeInfo & UserTreeIdx, bool TryPad)

    Checks that every instruction appears once in the list and if not, packs

    them, building

    mask and mutating

    The list of

    unique scalars is extended by poison values to the whole register size.

    Defined at line 10633 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool matchShuffleWithUNPCK (MVT VT, SDValue & V1, SDValue & V2, unsigned int & UnpackOpcode, bool IsUnary, ArrayRef<int> TargetMask, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 10647 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue clampDynamicVectorIndex (SelectionDAG & DAG, SDValue Idx, EVT VecVT, const SDLoc & dl, ElementCount SubEC)

    Defined at line 10663 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • SDValue lowerShuffleWithUNPCK (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG)

    X86 has dedicated unpack instructions that can handle specific blend

    operations: UNPCKH and UNPCKL.

    Defined at line 10736 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleWithUNPCK256 (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG)

    Check if the mask can be mapped to a preliminary shuffle (vperm 64-bit)

    followed by unpack 256-bit.

    Defined at line 10763 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool HasSameValue (const SCEV * A, const SCEV * B)

    SCEV structural equivalence is usually sufficient for testing whether two

    expressions are equal, however for the purposes of looking for a condition

    guarding a loop, it can be useful to be a little more general, since a

    front-end may have replicated the controlling expression.

    Defined at line 10776 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool matchShuffleAsVTRUNC (MVT & SrcVT, MVT & DstVT, MVT VT, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget)

    Check if the mask can be mapped to a TRUNCATE or VTRUNC, truncating the

    source into the lower elements and zeroing the upper elements.

    Defined at line 10789 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool MatchBinarySub (const SCEV * S, const SCEV *& LHS, const SCEV *& RHS)

    Defined at line 10800 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void addStackMapLiveVars (const CallBase & Call, unsigned int StartIdx, const SDLoc & DL, SmallVectorImpl<SDValue> & Ops, SelectionDAGBuilder & Builder)

    Add a stack map intrinsic call's live variable operands to a stackmap

    or patchpoint target node's operand list.

    Constants are converted to TargetConstants purely as an optimization to

    avoid constant materialization and register allocation.

    FrameIndex operands are converted to TargetFrameIndex so that ISEL does not

    generate addess computation nodes, and so FinalizeISel can convert the

    TargetFrameIndex into a DirectMemRefOp StackMap location. This avoids

    address materialization and register allocation, but may also be required

    for correctness. If a StackMap (or PatchPoint) intrinsic directly uses an

    alloca in the entry block, then the runtime may assume that the alloca's

    StackMap location can be read immediately after compilation and that the

    location is valid at any point during execution (this is similar to the

    assumption made by the llvm.gcroot intrinsic). If the alloca's location were

    only available in a register, then the runtime would need to trap when

    execution reaches the StackMap in order to read the alloca's location.

    Defined at line 10808 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • SDValue getAVX512TruncNode (const SDLoc & DL, MVT DstVT, SDValue Src, const X86Subtarget & Subtarget, SelectionDAG & DAG, bool ZeroUppers)

    Helper to create TRUNCATE/VTRUNC nodes, optionally with zero/undef upper

    element padding to the final DstVT.

    Defined at line 10827 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineShiftToMULH (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const TargetLowering & TLI)

    Transform a right shift of a multiply into a multiply-high.

    Examples:

    (srl (mul (zext i32:$a to i64), (zext i32:$a to i64)), 32) -> (mulhu $a, $b)

    (sra (mul (sext i32:$a to i64), (sext i32:$a to i64)), 32) -> (mulhs $a, $b)

    Defined at line 10830 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • template <typename AAType>
    std::optional<Constant *> askForAssumedConstant (Attributor & A, const AbstractAttribute & QueryingAA, const IRPosition & IRP, Type & Ty)

    Defined at line 10873 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  • SDValue lowerShuffleWithVPMOV (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower trunc+vector_shuffle to a vpmovdb or a vpmovdw instruction.

    An example is the following:

    t0: ch = EntryToken

    t2: v4i64,ch = CopyFromReg t0, Register:v4i64 %0

    t25: v4i32 = truncate t2

    t41: v8i16 = bitcast t25

    t21: v8i16 = BUILD_VECTOR undef:i16, undef:i16, undef:i16, undef:i16,

    Constant:i16

    <

    0>, Constant:i16

    <

    0>, Constant:i16

    <

    0>, Constant:i16

    <

    0>

    t51: v8i16 = vector_shuffle

    <

    0,2,4,6,12,13,14,15> t41, t21

    t18: v2i64 = bitcast t51

    One can just use a single vpmovdw instruction, without avx512vl we need to

    use the zmm variant and extract the lower subvector, padding with zeroes.

    TODO: Merge with lowerShuffleAsVTRUNC.

    Defined at line 10888 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void genAlternativeDpCodeSequence (MachineInstr & Root, const TargetInstrInfo & TII, SmallVectorImpl<MachineInstr *> & InsInstrs, SmallVectorImpl<MachineInstr *> & DelInstrs, int & InstrIdxForVirtReg)

    Defined at line 10896 of file llvm/lib/Target/X86/X86InstrInfo.cpp

  • SDValue lowerShuffleAsVTRUNC (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Attempt to match binary shuffle patterns as a truncate.

    Defined at line 10938 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldBitOrderCrossLogicOp (SDNode * N, SelectionDAG & DAG)

    fold (bswap (logic_op(bswap(x),y))) -> logic_op(x,bswap(y))

    This helper function accept SDNode with opcode ISD::BSWAP and ISD::BITREVERSE

    Defined at line 10941 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • int canLowerByDroppingElements (ArrayRef<int> Mask, bool MatchEven, bool IsSingleInput)

    Check whether a compaction lowering can be done by dropping even/odd

    elements and compute how many times even/odd elements must be dropped.

    This handles shuffles which take every Nth element where N is a power of

    two. Example shuffle masks:

    (even)

    N = 1: 0, 2, 4, 6, 8, 10, 12, 14, 0, 2, 4, 6, 8, 10, 12, 14

    N = 1: 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30

    N = 2: 0, 4, 8, 12, 0, 4, 8, 12, 0, 4, 8, 12, 0, 4, 8, 12

    N = 2: 0, 4, 8, 12, 16, 20, 24, 28, 0, 4, 8, 12, 16, 20, 24, 28

    N = 3: 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8, 0, 8

    N = 3: 0, 8, 16, 24, 0, 8, 16, 24, 0, 8, 16, 24, 0, 8, 16, 24

    (odd)

    N = 1: 1, 3, 5, 7, 9, 11, 13, 15, 0, 2, 4, 6, 8, 10, 12, 14

    N = 1: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31

    Any of these lanes can of course be undef.

    This routine only supports N

    <

    = 3.

    FIXME: Evaluate whether either AVX or AVX-512 have any opportunities here

    for larger N.

    Defined at line 11032 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchShuffleWithPACK (MVT VT, MVT & SrcVT, SDValue & V1, SDValue & V2, unsigned int & PackOpcode, ArrayRef<int> TargetMask, const SelectionDAG & DAG, const X86Subtarget & Subtarget, unsigned int MaxStages)

    X86 has dedicated pack instructions that can handle specific truncation

    operations: PACKSS and PACKUS.

    Checks for compaction shuffle masks if MaxStages > 1.

    TODO: Add support for matching multiple PACKSS/PACKUS stages.

    Defined at line 11082 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • AttributeList getReturnAttrs (TargetLowering::CallLoweringInfo & CLI)

    Returns an AttributeList representing the attributes applied to the return

    value of the given call.

    Defined at line 11117 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • SDValue lowerShuffleWithPACK (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 11153 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsBitMask (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to emit a bitmask instruction for a shuffle.

    This handles cases where we can model a blend exactly as a bitmask due to

    one of the inputs being zeroable.

    Defined at line 11203 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsBitBlend (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG)

    Try to emit a blend instruction for a shuffle using bit math.

    This is used as a fallback approach when first class blend instructions are

    unavailable. Currently it is only suitable for integer vectors, but could

    be generalized for floating point vectors if desirable.

    Defined at line 11257 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchShuffleAsBlend (MVT VT, SDValue V1, SDValue V2, MutableArrayRef<int> Mask, const APInt & Zeroable, bool & ForceV1Zero, bool & ForceV2Zero, uint64_t & BlendMask)

    Defined at line 11280 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsBlend (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Original, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to emit a blend instruction for a shuffle.

    This doesn't do any checks for the availability of instructions for blending

    these values. It relies on the availability of the X86ISD::BLENDI pattern to

    be matched in the backend with the type given. What it does check for is

    that the shuffle mask is a blend, or convertible into a blend with zero.

    Defined at line 11364 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsBlendAndPermute (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG, bool ImmBlends)

    Try to lower as a blend of elements from two inputs followed by

    a single-input permutation.

    This matches the pattern where we can blend elements from two inputs and

    then reduce the shuffle to a single-input permutation.

    Defined at line 11525 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsUNPCKAndPermute (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG)

    Try to lower as an unpack of elements from two inputs followed by

    a single-input permutation.

    This matches the pattern where we can unpack elements from two inputs and

    then reduce the shuffle to a single-input (wider) permutation.

    Defined at line 11564 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isOnlyUsedInEntryBlock (const Argument * A, bool FastISel)

    isOnlyUsedInEntryBlock - If the specified argument is only used in the

    entry block, return true. This includes arguments used by switches, since

    the switch may expand into multiple basic blocks.

    Defined at line 11585 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • void findArgumentCopyElisionCandidates (const DataLayout & DL, FunctionLoweringInfo * FuncInfo, int & ArgCopyElisionCandidates)

    Scan the entry block of the function in FuncInfo for arguments that look

    like copies into a local alloca. Record any copied arguments in

    ArgCopyElisionCandidates.

    Defined at line 11606 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • SDValue lowerShuffleAsPermuteAndUnpack (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower a shuffle as a permute of the inputs followed by an

    UNPCK instruction.

    This specifically targets cases where we end up with alternating between

    the two inputs, and so can permute them into something that feeds a single

    UNPCK instruction. Note that this routine only targets integer vectors

    because for floating point vectors we have a generalized SHUFPS lowering

    strategy that handles everything that doesn't *exactly* match an unpack,

    making this clever lowering unnecessary.

    Defined at line 11647 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void tryToElideArgumentCopy (FunctionLoweringInfo & FuncInfo, SmallVectorImpl<SDValue> & Chains, int & ArgCopyElisionFrameIndexMap, SmallPtrSetImpl<const Instruction *> & ElidedArgCopyInstrs, int & ArgCopyElisionCandidates, const Argument & Arg, ArrayRef<SDValue> ArgVals, bool & ArgHasUses)

    Try to elide argument copies from memory into a local alloca. Succeeds if

    ArgVal is a load from a suitable fixed stack object.

    Defined at line 11703 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • SDValue lowerShuffleAsByteRotateAndPermute (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Helper to form a PALIGNR-based rotate+permute, merging 2 inputs and then

    permuting the elements of the result in place.

    Defined at line 11758 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isBroadcastShuffleMask (ArrayRef<int> Mask)

    Defined at line 11842 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isNoopOrBroadcastShuffleMask (ArrayRef<int> Mask)

    Defined at line 11846 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isSingleElementRepeatedMask (ArrayRef<int> Mask)

    Check if the Mask consists of the same element repeated multiple times.

    Defined at line 11851 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsDecomposedShuffleMerge (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Generic routine to decompose a shuffle and blend into independent

    blends and permutes.

    This matches the extremely common pattern for handling combined

    shuffle+blend operations on newer X86 ISAs where we have very fast blend

    operations. It will try to pick the best arrangement of shuffles and

    blends. For vXi8/vXi16 shuffles we may use unpack instead of blend.

    Defined at line 11875 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isLegalToCombineMinNumMaxNum (SelectionDAG & DAG, SDValue LHS, SDValue RHS, SDNodeFlags Flags, const TargetLowering & TLI)

    Defined at line 11918 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue combineMinNumMaxNumImpl (const SDLoc & DL, EVT VT, SDValue LHS, SDValue RHS, SDValue True, SDValue False, CondCode CC, const TargetLowering & TLI, SelectionDAG & DAG)

    Defined at line 11931 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • int matchShuffleAsBitRotate (MVT & RotateVT, int EltSizeInBits, const X86Subtarget & Subtarget, ArrayRef<int> Mask)

    Defined at line 12008 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsBitRotate (const SDLoc & DL, MVT VT, SDValue V1, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower shuffle using X86ISD::VROTLI rotations.

    Defined at line 12028 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldSelectOfConstantsUsingSra (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    If a (v)select has a condition value that is a sign-bit test, try to smear

    the condition operand sign-bit across the value width and use it as a mask.

    Defined at line 12067 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • int matchShuffleAsElementRotate (SDValue & V1, SDValue & V2, ArrayRef<int> Mask)

    Try to match a vector shuffle as an element rotation.

    This is used for support PALIGNR for SSSE3 or VALIGND/Q for AVX512.

    Defined at line 12072 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool shouldConvertSelectOfConstantsToMath (const SDValue & Cond, EVT VT, const TargetLowering & TLI)

    Defined at line 12101 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • int matchShuffleAsByteRotate (MVT VT, SDValue & V1, SDValue & V2, ArrayRef<int> Mask)

    Try to lower a vector shuffle as a byte rotation.

    SSSE3 has a generic PALIGNR instruction in x86 that will do an arbitrary

    byte-rotation of the concatenation of two vectors; pre-SSSE3 can use

    a PSRLDQ/PSLLDQ/POR pattern to get a similar effect. This routine will

    try to generically lower a vector shuffle through such an pattern. It

    does not check for the profitability of lowering either as PALIGNR or

    PSRLDQ/PSLLDQ/POR, only whether the mask is valid to lower in that form.

    This matches shuffle vectors that look like:

    v8i16 [11, 12, 13, 14, 15, 0, 1, 2]

    Essentially it concatenates V1 and V2, shifts right by some number of

    elements, and takes the low elements as the result. Note that while this is

    specified as a *right shift* because x86 is little-endian, it is a *left

    rotate* of the vector lanes.

    Defined at line 12157 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool canFoldStoreIntoLibCallOutputPointers (StoreSDNode * StoreNode, SDNode * FPNode)

    Given a store node

    return true if it is safe to fold that node

    into

    which expands to a library call with output pointers.

    Defined at line 12162 of file llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp

  • SDValue lowerShuffleAsByteRotate (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 12179 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsVALIGN (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower a vector shuffle as a dword/qword rotation.

    AVX512 has a VALIGND/VALIGNQ instructions that will do an arbitrary

    rotation of the concatenation of two vectors; This routine will

    try to generically lower a vector shuffle through such an pattern.

    Essentially it concatenates V1 and V2, shifts right by some number of

    elements, and takes the low elements as the result. Note that while this is

    specified as a *right shift* because x86 is little-endian, it is a *left

    rotate* of the vector lanes.

    Defined at line 12236 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • template <class MatchContextClass>
    SDValue foldBoolSelectToLogic (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    Defined at line 12240 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue foldVSelectToSignBitSplatMask (SDNode * N, SelectionDAG & DAG)

    Defined at line 12281 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue lowerShuffleAsByteShiftMask (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower a vector shuffle as a byte shift sequence.

    Defined at line 12287 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isAlternateInstruction (Instruction * I, Instruction * MainOp, Instruction * AltOp, const TargetLibraryInfo & TLI)

    Checks if the specified instruction

    is an alternate operation for

    the given

    and

    instructions.

    Defined at line 12298 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isMainInstruction (Instruction * I, Instruction * MainOp, Instruction * AltOp, const TargetLibraryInfo & TLI)

    Checks if the specified instruction

    is an main operation for the given

    and

    instructions.

    Defined at line 12292 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • int matchShuffleAsShift (MVT & ShiftVT, unsigned int & Opcode, unsigned int ScalarSizeInBits, ArrayRef<int> Mask, int MaskOffset, const APInt & Zeroable, const X86Subtarget & Subtarget)

    Try to lower a vector shuffle as a bit shift (shifts in zeros).

    Attempts to match a shuffle mask against the PSLL(W/D/Q/DQ) and

    PSRL(W/D/Q/DQ) SSE2 and AVX2 logical bit-shift instructions. The function

    matches elements from one of the input vectors shuffled to the left or

    right with zeroable elements 'shifted in'. It handles both the strictly

    bit-wise element shifts and the byte shift across an entire 128-bit double

    quad word lane.

    PSHL : (little-endian) left bit shift.

    [ zz, 0, zz, 2 ]

    [ -1, 4, zz, -1 ]

    PSRL : (little-endian) right bit shift.

    [ 1, zz, 3, zz]

    [ -1, -1, 7, zz]

    PSLLDQ : (little-endian) left byte shift

    [ zz, 0, 1, 2, 3, 4, 5, 6]

    [ zz, zz, -1, -1, 2, 3, 4, -1]

    [ zz, zz, zz, zz, zz, zz, -1, 1]

    PSRLDQ : (little-endian) right byte shift

    [ 5, 6, 7, zz, zz, zz, zz, zz]

    [ -1, 5, 6, 7, zz, zz, zz, zz]

    [ 1, 2, -1, -1, -1, -1, zz, zz]

    Defined at line 12374 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsShift (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG, bool BitwiseOnly)

    Defined at line 12436 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchShuffleAsEXTRQ (MVT VT, SDValue & V1, SDValue & V2, ArrayRef<int> Mask, uint64_t & BitLen, uint64_t & BitIdx, const APInt & Zeroable)

    EXTRQ: Extract Len elements from lower half of source, starting at Idx.

    Remainder of lower half result is zero and upper half is all undef.

    Defined at line 12475 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool gluePropagatesDivergence (const SDNode * Node)

    Return true if a glue output should propagate divergence information.

    Defined at line 12495 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • bool matchShuffleAsINSERTQ (MVT VT, SDValue & V1, SDValue & V2, ArrayRef<int> Mask, uint64_t & BitLen, uint64_t & BitIdx)

    INSERTQ: Extract lowest Len elements from lower half of second source and

    insert over first source, starting at Idx.

    { A[0], .., A[Idx-1], B[0], .., B[Len-1], A[Idx+Len], .., UNDEF, ... }

    Defined at line 12531 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • BranchProbability scaleCaseProbality (BranchProbability CaseProb, BranchProbability PeeledCaseProb)

    Scale CaseProb after peeling a case with the probablity of PeeledCaseProb

    from the swith statement.

    Defined at line 12563 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • SDValue lowerShuffleWithSSE4A (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, SelectionDAG & DAG)

    Try to lower a vector shuffle using SSE4a EXTRQ/INSERTQ.

    Defined at line 12597 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • template <typename MinMaxExprType>
    bool IsMinMaxConsistingOf (const SCEV * MaybeMinMaxExpr, const SCEV * Candidate)

    Is MaybeMinMaxExpr an (U|S)(Min|Max) of Candidate and some other values?

    Defined at line 12603 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • SDValue ConvertSelectToConcatVector (SDNode * N, SelectionDAG & DAG)

    This function assumes all the vselect's arguments are CONCAT_VECTOR

    nodes and that the condition is a BV of ConstantSDNodes (or undefs).

    Defined at line 12608 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool IsKnownPredicateViaAddRecStart (ScalarEvolution & SE, CmpPredicate Pred, const SCEV * LHS, const SCEV * RHS)

    Defined at line 12612 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • SDValue lowerShuffleAsSpecificExtension (const SDLoc & DL, MVT VT, int Scale, int Offset, unsigned int ExtOpc, SDValue InputV, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower a vector shuffle as an any/signed/zero extension.

    Given a specific number of elements, element bit width, and extension

    stride, produce either an extension based on the available

    features of the subtarget. The extended elements are consecutive and

    begin and can start from an offsetted element index in the input; to

    avoid excess shuffling the offset must either being in the bottom lane

    or at the start of a higher lane. All extended elements must be from

    the same lane.

    Defined at line 12624 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool IsKnownPredicateViaMinOrMax (ScalarEvolution & SE, CmpPredicate Pred, const SCEV * LHS, const SCEV * RHS)

    Is LHS `Pred` RHS true on the virtue of LHS or RHS being a Min or Max

    expression?

    Defined at line 12641 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool refineUniformBase (SDValue & BasePtr, SDValue & Index, bool IndexIsScaled, SelectionDAG & DAG, const SDLoc & DL)

    Defined at line 12661 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool refineIndexType (SDValue & Index, ISD::MemIndexType & IndexType, EVT DataVT, SelectionDAG & DAG)

    Fold sext/zext of index into index type.

    Defined at line 12700 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • std::pair<InstructionCost, InstructionCost> getGEPCosts (const TargetTransformInfo & TTI, ArrayRef Ptrs, Value * BasePtr, unsigned int Opcode, TargetCostKind CostKind, Type * ScalarTy, VectorType * VecTy)

    Calculate the scalar and the vector costs from vectorizing set of GEPs.

    Defined at line 12720 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue lowerShuffleAsZeroOrAnyExtend (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower a vector shuffle as a zero extension on any microarch.

    This routine will try to do everything in its power to cleverly lower

    a shuffle which happens to match the pattern of a zero extend. It doesn't

    check for the profitability of this lowering, it tries to aggressively

    match this pattern. It will use all of the micro-architectural details it

    can to emit an efficient lowering. It handles both blends with all-zero

    inputs to explicitly zero-extend and undef-lanes (sometimes undef due to

    masking out later).

    The reason we have dedicated lowering for zext-style shuffles is that they

    are both incredibly common and often quite performance sensitive.

    Defined at line 12796 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isKnownPredicateExtendIdiom (CmpPredicate Pred, const SCEV * LHS, const SCEV * RHS)

    Defined at line 12842 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • Register FollowCopyChain (MachineRegisterInfo & MRI, Register Reg)

    Consider the following MIR after SelectionDAG, which produces output in

    phyregs in the first case or virtregs in the second case.

    INLINEASM_BR ..., implicit-def $ebx, ..., implicit-def $edx

    %5:gr32 = COPY $ebx

    %6:gr32 = COPY $edx

    %1:gr32 = COPY %6:gr32

    %0:gr32 = COPY %5:gr32

    INLINEASM_BR ..., def %5:gr32, ..., def %6:gr32

    %1:gr32 = COPY %6:gr32

    %0:gr32 = COPY %5:gr32

    Given %0, we'd like to return $ebx in the first case and %5 in the second.

    Given %1, we'd like to return $edx in the first case and %6 in the second.

    If a callbr has outputs, it will have a single mapping in FuncInfo.ValueMap

    to a single virtreg (such as %0). The remaining outputs monotonically

    increase in virtreg number from there. If a callbr has no outputs, then it

    should not have a corresponding callbr landingpad; in fact, the callbr

    landingpad would not even be able to refer to such a callbr.

    Defined at line 12890 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  • SDValue getScalarValueForVectorElement (SDValue V, int Idx, SelectionDAG & DAG)

    Try to get a scalar value for a specific element of a vector.

    Looks through BUILD_VECTOR and SCALAR_TO_VECTOR nodes to find a scalar.

    Defined at line 12916 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isShuffleFoldableLoad (SDValue )

    Helper to test for a load that can be folded with x86 shuffles.

    This is particularly important because the set of instructions varies

    significantly based on whether the operand is a load or not.

    Defined at line 12944 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • template <typename T>
    bool isSoftF16 (T VT, const X86Subtarget & Subtarget)

    Defined at line 12950 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsElementInsertion (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower insertion of a single element into a zero vector.

    This is a common pattern that we have especially efficient patterns to lower

    across all subtarget feature sets.

    Defined at line 12960 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • InstructionCost canConvertToFMA (ArrayRef VL, const InstructionsState & S, DominatorTree & DT, const DataLayout & DL, TargetTransformInfo & TTI, const TargetLibraryInfo & TLI)

    Check if we can convert fadd/fsub sequence to FMAD.

    Defined at line 12965 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue lowerShuffleAsTruncBroadcast (const SDLoc & DL, MVT VT, SDValue V0, int BroadcastIdx, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower broadcast of a single - truncated - integer element,

    coming from a scalar_to_vector/build_vector node

    with larger elements.

    This assumes we have AVX2.

    Defined at line 13086 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isSingleSHUFPSMask (ArrayRef<int> Mask)

    Test whether this can be lowered with a single SHUFPS instruction.

    This is used to disable more specialized lowerings when the shufps lowering

    will happen to be efficient.

    Defined at line 13139 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isShuffleMaskInputInPlace (int Input, ArrayRef<int> Mask)

    Test whether the specified input (0 or 1) is in-place blended by the

    given mask.

    This returns true if the elements from a particular input are already in the

    slot required by the given mask and require no permutation.

    Defined at line 13162 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isShuffleMaskInputBroadcastable (int Input, ArrayRef<int> Mask, int BroadcastableElement)

    Test whether the specified input (0 or 1) is a broadcast/splat blended by

    the given mask.

    Defined at line 13175 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleOfExtractsAsVperm (const SDLoc & DL, SDValue N0, SDValue N1, ArrayRef<int> Mask, SelectionDAG & DAG)

    If we are extracting two 128-bit halves of a vector and shuffling the

    result, match that to a 256-bit AVX2 vperm* instruction to avoid a

    multi-shuffle lowering.

    Defined at line 13189 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsBroadcast (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower broadcast of a single element.

    For convenience, this code also bundles all of the subtarget feature set

    filtering. While a little annoying to re-dispatch on type here, there isn't

    a convenient way to factor it out.

    Defined at line 13243 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVSelectWithAllOnesOrZeros (SDValue Cond, SDValue TVal, SDValue FVal, const TargetLowering & TLI, SelectionDAG & DAG, const SDLoc & DL)

    Defined at line 13365 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool matchShuffleAsInsertPS (SDValue & V1, SDValue & V2, unsigned int & InsertPSMask, const APInt & Zeroable, ArrayRef<int> Mask, SelectionDAG & DAG)

    Check for whether we can use INSERTPS to perform the shuffle. We only use

    INSERTPS when the V1 elements are already in the correct locations

    because otherwise we can just always use two SHUFPS instructions which

    are much smaller to encode than a SHUFPS and an INSERTPS. We can also

    perform INSERTPS if a single V1 element is out of place and all V2

    elements are zeroable.

    Defined at line 13455 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsInsertPS (const SDLoc & DL, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, SelectionDAG & DAG)

    Defined at line 13543 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV2F64Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 2-lane 64-bit floating point shuffles.

    This is the basis function for the 2-lane 64-bit shuffles as we have full

    support for floating point shuffles but not integer shuffles. These

    instructions will incur a domain crossing penalty on some chips though so

    it is better to avoid lowering through this for integer vectors where

    possible.

    Defined at line 13566 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV2I64Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 2-lane 64-bit integer shuffles.

    Tries to lower a 2-lane 64-bit shuffle using shuffle operations provided by

    the integer unit to minimize domain crossing penalties. However, for blends

    it falls back to the floating point shuffle operation with appropriate bit

    casting.

    Defined at line 13650 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleWithSHUFPS (const SDLoc & DL, MVT VT, ArrayRef<int> Mask, SDValue V1, SDValue V2, SelectionDAG & DAG)

    Lower a vector shuffle using the SHUFPS instruction.

    This is a helper routine dedicated to lowering vector shuffles using SHUFPS.

    It makes no assumptions about whether this is the *best* lowering, it simply

    uses it.

    Defined at line 13750 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void PrintSCEVWithTypeHint (raw_ostream & OS, const SCEV * S)

    When printing a top-level SCEV for trip counts, it's helpful to include

    a type for constants which are otherwise hard to disambiguate.

    Defined at line 13835 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • void PrintLoopInfo (raw_ostream & OS, ScalarEvolution * SE, const Loop * L)

    Defined at line 13841 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • SDValue lowerV4F32Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower 4-lane 32-bit floating point shuffles.

    Uses instructions exclusively from the floating point unit to minimize

    domain crossing penalties, as these are sufficient to implement all v4f32

    shuffles.

    Defined at line 13842 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV4I32Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower 4-lane i32 vector shuffles.

    We try to handle these with integer-domain shuffles where we can, but for

    blends we use the floating point domain blend instructions.

    Defined at line 13946 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isCompatibleLoad (SDValue N, unsigned int ExtOpcode)

    Check if N satisfies:

    N is used once.

    N is a Load.

    The load is compatible with ExtOpcode. It means

    If load has explicit zero/sign extension, ExpOpcode must have the same

    extension.

    Otherwise returns true.

    Defined at line 13950 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue tryToFoldExtendSelectLoad (SDNode * N, const TargetLowering & TLI, SelectionDAG & DAG, const SDLoc & DL, CombineLevel Level)

    Fold

    (sext (select c, load x, load y)) -> (select c, sextload x, sextload y)

    (zext (select c, load x, load y)) -> (select c, zextload x, zextload y)

    (aext (select c, load x, load y)) -> (select c, extload x, extload y)

    This function is called by the DAGCombiner when visiting sext/zext/aext

    dag nodes (see for example method DAGCombiner::visitSIGN_EXTEND).

    Defined at line 13977 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue tryToFoldExtendOfConstant (SDNode * N, const SDLoc & DL, const TargetLowering & TLI, SelectionDAG & DAG, bool LegalTypes)

    Try to fold a sext/zext/aext dag node into a ConstantSDNode or

    a build_vector of constants.

    This function is called by the DAGCombiner when visiting sext/zext/aext

    dag nodes (see for example method DAGCombiner::visitSIGN_EXTEND).

    Vector extends are not folded if operations are legal; this is to

    avoid introducing illegal build_vector dag nodes.

    Defined at line 14022 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue lowerV8I16GeneralSingleInputShuffle (const SDLoc & DL, MVT VT, SDValue V, MutableArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lowering of single-input v8i16 shuffles is the cornerstone of SSE2

    shuffle lowering, and the most complex part.

    The lowering strategy is to try to form pairs of input lanes which are

    targeted at the same half of the final vector, and then use a dword shuffle

    to place them onto the right half, and finally unpack the paired lanes into

    their final position.

    The exact breakdown of how to form these dword pairs and align them on the

    correct sides is really tricky. See the comments within the function for

    more of the details.

    This code also handles repeated 128-bit lanes of v8i16 shuffles, but each

    lane must shuffle the *exact* same way. In fact, you must pass a v8 Mask to

    this routine for it to work correctly. To shuffle a 256-bit or 512-bit i16

    vector, form the analogous 128-bit 8-element Mask.

    Defined at line 14089 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool ExtendUsesToFormExtLoad (EVT VT, SDNode * N, SDValue N0, unsigned int ExtOpc, SmallVectorImpl<SDNode *> & ExtendNodes, const TargetLowering & TLI)

    ExtendUsesToFormExtLoad - Trying to extend uses of a load to enable this:

    "fold ({s|z|a}ext (load x)) -> ({s|z|a}ext (truncate ({s|z|a}extload x)))"

    transformation. Returns true if extension are possible and the above

    mentioned transformation is profitable.

    Defined at line 14105 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void checkForCyclesHelper (const SDNode * N, SmallPtrSetImpl<const SDNode *> & Visited, SmallPtrSetImpl<const SDNode *> & Checked, const llvm::SelectionDAG * DAG)

    Defined at line 14368 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  • SDValue tryToFoldExtOfExtload (SelectionDAG & DAG, DAGCombiner & Combiner, const TargetLowering & TLI, EVT VT, bool LegalOperations, SDNode * N, SDValue N0, LoadExtType ExtLoadType)

    fold ([s|z]ext ([s|z]extload x)) -> ([s|z]ext (truncate ([s|z]extload x)))

    fold ([s|z]ext ( extload x)) -> ([s|z]ext (truncate ([s|z]extload x)))

    Defined at line 14404 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue tryToFoldExtOfLoad (SelectionDAG & DAG, DAGCombiner & Combiner, const TargetLowering & TLI, EVT VT, bool LegalOperations, SDNode * N, SDValue N0, LoadExtType ExtLoadType, NodeType ExtOpc, bool NonNegZExt)

    fold ([s|z]ext (load x)) -> ([s|z]ext (truncate ([s|z]extload x)))

    Only generate vector extloads when 1) they're legal, and 2) they are

    deemed desirable by the target. NonNegZExt can be set to true if a zero

    extend has the nonneg flag to allow use of sextload if profitable.

    Defined at line 14436 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue tryToFoldExtOfMaskedLoad (SelectionDAG & DAG, const TargetLowering & TLI, EVT VT, bool LegalOperations, SDNode * N, SDValue N0, LoadExtType ExtLoadType, NodeType ExtOpc)

    Defined at line 14497 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue tryToFoldExtOfAtomicLoad (SelectionDAG & DAG, const TargetLowering & TLI, EVT VT, SDValue N0, LoadExtType ExtLoadType)

    fold ([s|z]ext (atomic_load)) -> ([s|z]ext (truncate ([s|z]ext atomic_load)))

    Defined at line 14526 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue foldExtendedSignBitTest (SDNode * N, SelectionDAG & DAG, bool LegalOperations)

    Defined at line 14555 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue lowerShuffleAsBlendOfPSHUFBs (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, SelectionDAG & DAG, bool & V1InUse, bool & V2InUse)

    Helper to form a PSHUFB-based shuffle+blend, opportunistically avoiding the

    blend if only one input is used.

    Defined at line 14590 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV8I16Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Generic lowering of 8-lane i16 shuffles.

    This handles both single-input shuffles and combined shuffle/blends with

    two inputs. The single input shuffles are immediately delegated to

    a dedicated lowering routine.

    The blends are lowered in one of three fundamental ways. If there are few

    enough inputs, it delegates to a basic UNPCK-based strategy. If the shuffle

    of the input is significantly cheaper when lowered as an interleaving of

    the two inputs, try to interleave them. Otherwise, blend the low and high

    halves of the inputs separately (making them have relatively few inputs)

    and then concatenate them.

    Defined at line 14653 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void initializeScalarEvolutionWrapperPassPassOnce (PassRegistry & Registry)

    Defined at line 14811 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • SDValue lowerV8F16Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower 8-lane 16-bit floating point shuffles.

    Defined at line 14857 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleWithPERMV (const SDLoc & DL, MVT VT, ArrayRef<int> OriginalMask, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lowers unary/binary shuffle as VPERMV/VPERMV3, for non-VLX targets,

    sub-512-bit shuffles are padded to 512-bits for the shuffle and then

    the active subvector is extracted.

    Defined at line 14888 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV16I8Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Generic lowering of v16i8 shuffles.

    This is a hybrid strategy to lower v16i8 vectors. It first attempts to

    detect any complexity reducing interleaving. If that doesn't help, it uses

    UNPCK to spread the i8 elements across two i16-element vectors, and uses

    the existing lowering for v8i16 blends on each half, finally PACK-ing them

    back together.

    Defined at line 14940 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue widenCtPop (SDNode * Extend, SelectionDAG & DAG, const SDLoc & DL)

    Given an extending node with a pop-count operand, if the target does not

    support a pop-count in the narrow source type but does support it in the

    destination type, widen the pop-count to the destination type.

    Defined at line 14951 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue widenAbs (SDNode * Extend, SelectionDAG & DAG)

    If we have (zext (abs X)) where X is a type that will be promoted by type

    legalization, convert to (abs (sext X)). But don't extend past a legal type.

    Defined at line 14973 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue lower128BitShuffle (const SDLoc & DL, ArrayRef<int> Mask, MVT VT, SDValue V1, SDValue V2, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Dispatching routine to lower various 128-bit x86 vector shuffles.

    This routine breaks down the specific type of 128-bit shuffle and

    dispatches to the lowering routines accordingly.

    Defined at line 15294 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue splitAndLowerShuffle (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG, bool SimpleOnly)

    Generic routine to split vector shuffle into half-sized shuffles.

    This routine just extracts two subvectors, shuffles them independently, and

    then concatenates them back together. This should work effectively with all

    AVX vector shuffle types.

    Defined at line 15332 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsSplitOrBlend (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Either split a vector in halves or decompose the shuffles and the

    blend/unpack.

    This is provided as a good fallback for many lowerings of non-single-input

    shuffles with more than one 128-bit lane. In those cases, we want to select

    between splitting the shuffle into 128-bit components and stitching those

    back together vs. extracting the single-input shuffles and blending those

    results.

    Defined at line 15472 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const SCEV * getPreviousSCEVDivisibleByDivisor (const SCEV * Expr, const APInt & DivisorVal, ScalarEvolution & SE)

    Return a new SCEV that modifies

    to the closest number divides by

    and less or equal than Expr. For now, only handle constant

    Expr.

    Defined at line 15509 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • const SCEV * getNextSCEVDivisibleByDivisor (const SCEV * Expr, const APInt & DivisorVal, ScalarEvolution & SE)

    Return a new SCEV that modifies

    to the closest number divides by

    and greater or equal than Expr. For now, only handle constant

    Expr.

    Defined at line 15524 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • bool isLoadCombineCandidateImpl (Value * Root, unsigned int NumElts, TargetTransformInfo * TTI, bool MustMatchOrInst)

    Defined at line 15537 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool collectDivisibilityInformation (Predicate Predicate, const SCEV * LHS, const SCEV * RHS, int & DivInfo, int & Multiples, ScalarEvolution & SE)

    Defined at line 15538 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • SDValue lowerShuffleAsLanePermuteAndSHUFP (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG)

    Lower as SHUFPD(VPERM2F128(V1, V2), VPERM2F128(V1, V2)).

    TODO: Extend to support v8f32 (+ 512-bit shuffles).

    Defined at line 15543 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isDivisibilityGuard (const SCEV * LHS, const SCEV * RHS, ScalarEvolution & SE)

    Check if the condition is a divisibility guard (A % B == 0).

    Defined at line 15562 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • const SCEV * applyDivisibilityOnMinMaxExpr (const SCEV * MinMaxExpr, APInt Divisor, ScalarEvolution & SE)

    Apply divisibility by

    on MinMaxExpr with constant values,

    recursively. This is done by aligning up/down the constant value to the

    Divisor.

    Defined at line 15571 of file llvm/lib/Analysis/ScalarEvolution.cpp

  • SDValue lowerShuffleAsLanePermuteAndPermute (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Lower a vector shuffle crossing multiple 128-bit lanes as

    a lane permutation followed by a per-lane permutation.

    This is mainly for cases where we can have non-repeating permutes

    in each lane.

    TODO: This is very similar to lowerShuffleAsLanePermuteAndRepeatedMask,

    we should investigate merging them.

    Defined at line 15579 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void computeInLaneShuffleMask (const ArrayRef<int> & Mask, int LaneSize, int & InLaneMask)

    Helper to get compute inlane shuffle mask for a complete shuffle mask.

    Defined at line 15690 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsLanePermuteAndShuffle (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Lower a vector shuffle crossing multiple 128-bit lanes by shuffling one

    source with a lane permutation.

    This lowering strategy results in four instructions in the worst case for a

    single-input cross lane shuffle which is lower than any other fully general

    cross-lane shuffle strategy I'm aware of. Special cases for each particular

    shuffle pattern should be handled prior to trying this lowering.

    Defined at line 15710 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV2X128Shuffle (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering 2-lane 128-bit shuffles.

    Defined at line 15769 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsLanePermuteAndRepeatedMask (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower a vector shuffle by first fixing the 128-bit lanes and then

    shuffling each lane.

    This attempts to create a repeated lane shuffle where each lane uses one

    or two of the lanes of the inputs. The lanes of the input vectors are

    shuffled in one or two independent shuffles to get the lanes into the

    position needed by the final shuffle.

    Defined at line 15889 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isFirstInsertElement (const InsertElementInst * IE1, const InsertElementInst * IE2)

    Checks if the

    instructions is followed by

    instruction in the

    buildvector sequence.

    Defined at line 16053 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool getHalfShuffleMask (ArrayRef<int> Mask, MutableArrayRef<int> HalfMask, int & HalfIdx1, int & HalfIdx2)

    If the input shuffle mask results in a vector that is undefined in all upper

    or lower half elements and that mask accesses only 2 halves of the

    shuffle's operands, return true. A mask of half the width with mask indexes

    adjusted to access the extracted halves of the original shuffle operands is

    returned in HalfMask. HalfIdx1 and HalfIdx2 return whether the upper or

    lower half of each input operand is accessed.

    Defined at line 16061 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldExtendVectorInregToExtendOfSubvector (SDNode * N, const SDLoc & DL, const TargetLowering & TLI, SelectionDAG & DAG, bool LegalOperations)

    Defined at line 16072 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • template <typename T>
    T * performExtractsShuffleAction (int ShuffleMask, Value * Base, function_ref<unsigned int (T *)> GetVF, function_ref<std::pair<T *, bool> (T *, ArrayRef<int>, bool)> ResizeAction, function_ref<T *(ArrayRef<int>, ArrayRef<T *>)> Action)

    Does the analysis of the provided shuffle masks and performs the requested

    actions on the vectors with the given shuffle masks. It tries to do it in

    several steps.

    1. If the Base vector is not undef vector, resizing the very first mask to

    have common VF and perform action for 2 input vectors (including non-undef

    Base). Other shuffle masks are combined with the resulting after the 1 stage

    and processed as a shuffle of 2 elements.

    2. If the Base is undef vector and have only 1 shuffle mask, perform the

    action only for 1 vector with the given mask, if it is not the identity

    mask.

    3. If > 2 masks are used, perform the remaining shuffle actions for 2

    vectors, combing the masks properly between the steps.

    Defined at line 16108 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue getShuffleHalfVectors (const SDLoc & DL, SDValue V1, SDValue V2, ArrayRef<int> HalfMask, int HalfIdx1, int HalfIdx2, bool UndefLower, SelectionDAG & DAG, bool UseConcat)

    Given the output values from getHalfShuffleMask(), create a half width

    shuffle of extracted vectors followed by an insert back to full width.

    Defined at line 16113 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue detectUSatUPattern (SDValue In, EVT VT)

    Detect patterns of truncation with unsigned saturation:

    (truncate (umin (x, unsigned_max_of_dest_type)) to dest_type).

    Return the source value x to be truncated or SDValue() if the pattern was

    not matched.

    Defined at line 16150 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue lowerShuffleWithUndefHalf (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower shuffles where an entire half of a 256 or 512-bit vector is UNDEF.

    This allows for fast cases such as subvector extraction/insertion

    or shuffling smaller vector types which can lower more efficiently.

    Defined at line 16153 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue detectSSatSPattern (SDValue In, EVT VT)

    Detect patterns of truncation with signed saturation:

    (truncate (smin (smax (x, signed_min_of_dest_type),

    signed_max_of_dest_type)) to dest_type)

    or:

    (truncate (smax (smin (x, signed_max_of_dest_type),

    signed_min_of_dest_type)) to dest_type).

    Return the source value to be truncated or SDValue() if the pattern was not

    matched.

    Defined at line 16173 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue detectSSatUPattern (SDValue In, EVT VT, SelectionDAG & DAG, const SDLoc & DL)

    Detect patterns of truncation with unsigned saturation:

    Defined at line 16195 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue foldToSaturated (SDNode * N, EVT & VT, SDValue & Src, EVT & SrcVT, SDLoc & DL, const TargetLowering & TLI, SelectionDAG & DAG)

    Defined at line 16220 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue lowerShuffleAsRepeatedMaskAndLanePermute (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle case where shuffle sources are coming from the same 128-bit lane and

    every lane can be represented as the same repeating mask - allowing us to

    shuffle the sources with the repeating shuffle and then permute the result

    to the destination lanes.

    Defined at line 16268 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchShuffleWithSHUFPD (MVT VT, SDValue & V1, SDValue & V2, bool & ForceV1Zero, bool & ForceV2Zero, unsigned int & ShuffleImm, ArrayRef<int> Mask, const APInt & Zeroable)

    Defined at line 16467 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleWithSHUFPD (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 16513 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShuffleAsVTRUNCAndUnpack (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, const APInt & Zeroable, SelectionDAG & DAG)

    Look for {0, 8, 16, 24, 32, 40, 48, 56 } in the first 8 elements. Followed

    by zeroable elements in the remaining 24 elements. Turn this into two

    vmovqb instructions shuffled together.

    Defined at line 16540 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerShufflePairAsUNPCKAndPermute (const SDLoc & DL, MVT VT, SDValue V1, SDValue V2, ArrayRef<int> Mask, SelectionDAG & DAG)

    a = shuffle v1, v2, mask1 ; interleaving lower lanes of v1 and v2

    b = shuffle v1, v2, mask2 ; interleaving higher lanes of v1 and v2

    =>

    ul = unpckl v1, v2

    uh = unpckh v1, v2

    a = vperm ul, uh

    b = vperm ul, uh

    Pattern-match interleave(256b v1, 256b v2) -> 512b v3 and lower it into unpck

    and permute. We cannot directly match v3 because it is split into two

    256-bit vectors in earlier isel stages. Therefore, this function matches a

    pair of 256-bit shuffles and makes sure the masks are consecutive.

    Once unpck and permute nodes are created, the permute corresponding to this

    shuffle is returned, while the other permute replaces the other half of the

    shuffle in the selection dag.

    Defined at line 16588 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV4F64Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 4-lane 64-bit floating point shuffles.

    Also ends up handling lowering of 4-lane 64-bit integer shuffles when AVX2

    isn't available.

    Defined at line 16661 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDNode * getBuildPairElt (SDNode * N, unsigned int i)

    Defined at line 16678 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • unsigned int getPPCf128HiElementSelector (const SelectionDAG & DAG)

    Defined at line 16717 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue lowerV4I64Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 4-lane 64-bit integer shuffles.

    This routine is only called when we have AVX2 and thus a reasonable

    instruction set for v4i64 shuffling..

    Defined at line 16784 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV8F32Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 8-lane 32-bit floating point shuffles.

    Also ends up handling lowering of 8-lane 32-bit integer shuffles when AVX2

    isn't available.

    Defined at line 16897 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV8I32Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 8-lane 32-bit integer shuffles.

    This routine is only called when we have AVX2 and thus a reasonable

    instruction set for v8i32 shuffling..

    Defined at line 17020 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV16I16Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 16-lane 16-bit integer shuffles.

    This routine is only called when we have AVX2 and thus a reasonable

    instruction set for v16i16 shuffling..

    Defined at line 17162 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isContractableFMUL (const TargetOptions & Options, SDValue N)

    Returns true if floating point contraction is allowed on the FMUL-SDValue

    `N`

    Defined at line 17248 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue lowerV32I8Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 32-lane 8-bit integer shuffles.

    This routine is only called when we have AVX2 and thus a reasonable

    instruction set for v32i8 shuffling..

    Defined at line 17285 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lower256BitShuffle (const SDLoc & DL, ArrayRef<int> Mask, MVT VT, SDValue V1, SDValue V2, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    High-level routine to lower various 256-bit x86 vector shuffles.

    This routine either breaks down the specific type of a 256-bit x86 vector

    shuffle or splits it into two 128-bit shuffles and fuses the results back

    together based on the available instructions.

    Defined at line 17407 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV4X128Shuffle (const SDLoc & DL, MVT VT, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower a vector shuffle as a 128-bit shuffles.

    Defined at line 17479 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV8F64Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 8-lane 64-bit floating point shuffles.

    Defined at line 17585 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV16F32Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 16-lane 32-bit floating point shuffles.

    Defined at line 17639 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV8I64Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 8-lane 64-bit integer shuffles.

    Defined at line 17706 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV16I32Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 16-lane 32-bit integer shuffles.

    Defined at line 17779 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV32I16Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 32-lane 16-bit integer shuffles.

    Defined at line 17876 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerV64I8Shuffle (const SDLoc & DL, ArrayRef<int> Mask, const APInt & Zeroable, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle lowering of 64-lane 8-bit integer shuffles.

    Defined at line 17947 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lower512BitShuffle (const SDLoc & DL, ArrayRef<int> Mask, MVT VT, SDValue V1, SDValue V2, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    High-level routine to lower various 512-bit x86 vector shuffles.

    This routine either breaks down the specific type of a 512-bit x86 vector

    shuffle or splits it into two 256-bit shuffles and fuses the results back

    together based on the available instructions.

    Defined at line 18045 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lower1BitShuffleAsKSHIFTR (const SDLoc & DL, ArrayRef<int> Mask, MVT VT, SDValue V1, SDValue V2, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 18119 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • int match1BitShuffleAsKSHIFT (unsigned int & Opcode, ArrayRef<int> Mask, int MaskOffset, const APInt & Zeroable)

    Determine if this shuffle can be implemented with a KSHIFT instruction.

    Returns the shift amount if possible or -1 if not. This is a simplified

    version of matchShuffleAsShift.

    Defined at line 18160 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lower1BitShuffle (const SDLoc & DL, ArrayRef<int> Mask, MVT VT, SDValue V1, SDValue V2, const APInt & Zeroable, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower vXi1 vector shuffles.

    There is no a dedicated instruction on AVX-512 that shuffles the masks.

    The only way to shuffle bits is to sign-extend the mask vector to SIMD

    vector, shuffle and then truncate it back.

    Defined at line 18194 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool canonicalizeShuffleMaskWithCommute (ArrayRef<int> Mask)

    Helper function that returns true if the shuffle mask should be

    commuted to improve canonicalization.

    Defined at line 18335 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool canCombineAsMaskOperation (SDValue V, const X86Subtarget & Subtarget)

    Defined at line 18397 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerVECTOR_SHUFFLE (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Top-level lowering for x86 vector shuffles.

    This handles decomposition, canonicalization, and lowering of all x86

    vector shuffles. Most of the specific lowering strategies are encapsulated

    above in helper routines. The canonicalization attempts to widen shuffles

    to involve fewer lanes of wider elements, consolidate symmetric patterns

    s.t. only one of the two inputs needs to be tested, etc.

    Defined at line 18462 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerVECTOR_COMPRESS (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    As legal vpcompress instructions depend on various AVX512 extensions, try to

    convert illegal vector sizes to legal ones to avoid expansion.

    Defined at line 18628 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerVSELECTtoVectorShuffle (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to lower a VSELECT instruction to a vector shuffle.

    Defined at line 18689 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerEXTRACT_VECTOR_ELT_SSE4 (SDValue Op, SelectionDAG & DAG)

    Defined at line 18823 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue ExtractBitFromMaskVector (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Extract one bit from mask vector, like v16i1 or v8i1.

    AVX-512 feature.

    Defined at line 18874 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • APInt getExtractedDemandedElts (SDNode * N)

    Helper to find all the extracted elements from a vector.

    Defined at line 18920 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool CanCombineFCOPYSIGN_EXTEND_ROUND (EVT XTy, EVT YTy)

    copysign(x, fp_extend(y)) -> copysign(x, y)

    copysign(x, fp_round(y)) -> copysign(x, y)

    Operands to the functions are the type of X and Y respectively.

    Defined at line 18922 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool CanCombineFCOPYSIGN_EXTEND_ROUND (SDNode * N)

    Defined at line 18938 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue foldFPToIntToFP (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const TargetLowering & TLI)

    Defined at line 19066 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue InsertBitToMaskVector (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Insert one bit to mask vector, like v16i1 or v8i1.

    AVX-512 feature.

    Defined at line 19110 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue FoldIntToFPToInt (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    Fold (fp_to_{s/u}int ({s/u}int_to_fpx)) -> zext x, sext x, trunc x, or x

    Defined at line 19202 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Instruction * propagateMetadata (Instruction * Inst, ArrayRef VL)

    Defined at line 19229 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • DebugLoc getDebugLocFromPHI (PHINode & PN)

    Defined at line 19237 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue LowerFLDEXP (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 19346 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue eliminateFPCastPair (SDNode * N)

    Eliminate a floating-point widening of a narrowed value if the fast math

    flags allow it.

    Defined at line 19361 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowerSCALAR_TO_VECTOR (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 19412 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerINSERT_SUBVECTOR (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower a node with an INSERT_SUBVECTOR opcode. This may result in a

    simple superregister reference or explicit instructions to insert

    the upper bits of a vector.

    Defined at line 19451 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerEXTRACT_SUBVECTOR (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 19458 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue GetTLSADDR (SelectionDAG & DAG, GlobalAddressSDNode * GA, EVT PtrVT, unsigned int ReturnReg, unsigned char OperandFlags, bool LoadGlobalBaseReg, bool LocalDynamic)

    Defined at line 19672 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerToTLSGeneralDynamicModel32 (GlobalAddressSDNode * GA, SelectionDAG & DAG, EVT PtrVT)

    Lower ISD::GlobalTLSAddress using the "general dynamic" model, 32 bit

    Defined at line 19746 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerToTLSGeneralDynamicModel64 (GlobalAddressSDNode * GA, SelectionDAG & DAG, EVT PtrVT)

    Lower ISD::GlobalTLSAddress using the "general dynamic" model, 64 bit LP64

    Defined at line 19754 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerToTLSGeneralDynamicModelX32 (GlobalAddressSDNode * GA, SelectionDAG & DAG, EVT PtrVT)

    Lower ISD::GlobalTLSAddress using the "general dynamic" model, 64 bit ILP32

    Defined at line 19761 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerToTLSLocalDynamicModel (GlobalAddressSDNode * GA, SelectionDAG & DAG, EVT PtrVT, bool Is64Bit, bool Is64BitLP64)

    Defined at line 19767 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerToTLSExecModel (GlobalAddressSDNode * GA, SelectionDAG & DAG, EVT PtrVT, Model model, bool is64Bit, bool isPIC)

    Lower ISD::GlobalTLSAddress using the "initial exec" or "local exec" model.

    Defined at line 19805 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool getCombineLoadStoreParts (SDNode * N, unsigned int Inc, unsigned int Dec, bool & IsLoad, bool & IsMasked, SDValue & Ptr, const TargetLowering & TLI)

    Defined at line 19858 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowerShiftParts (SDValue Op, SelectionDAG & DAG)

    Lower SRA_PARTS and friends, which return two i32 values

    and take a 2 x i32 value to shift plus a shift amount.

    TODO: Can this be moved to general expansion code?

    Defined at line 20032 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerI64IntToFP_AVX512DQ (SDValue Op, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to use a packed vector operation to handle i64 on 32-bit targets when

    AVX512DQ is enabled.

    Defined at line 20040 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerI64IntToFP16 (SDValue Op, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to use a packed vector operation to handle i64 on 32-bit targets.

    Defined at line 20082 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool useVectorCast (unsigned int Opcode, MVT FromVT, MVT ToVT, const X86Subtarget & Subtarget)

    Defined at line 20117 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool shouldCombineToPostInc (SDNode * N, SDValue Ptr, SDNode * PtrUse, SDValue & BasePtr, SDValue & Offset, ISD::MemIndexedMode & AM, SelectionDAG & DAG, const TargetLowering & TLI)

    Defined at line 20120 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue vectorizeExtractedCast (SDValue Cast, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Given a scalar cast operation that is extracted from a vector, try to

    vectorize the cast op followed by extraction. This will avoid an expensive

    round-trip between XMM and GPR.

    Defined at line 20142 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDNode * getPostIndexedLoadStoreOp (SDNode * N, bool & IsLoad, bool & IsMasked, SDValue & Ptr, SDValue & BasePtr, SDValue & Offset, ISD::MemIndexedMode & AM, SelectionDAG & DAG, const TargetLowering & TLI)

    Defined at line 20170 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue lowerFPToIntToFP (SDValue CastToFP, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Given a scalar cast to FP with a cast to integer operand (almost an ftrunc),

    try to vectorize the cast ops. This will avoid an expensive round-trip

    between XMM and GPR.

    Defined at line 20184 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerINT_TO_FP_vXi64 (SDValue Op, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 20231 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • ElementCount numVectorEltsOrZero (EVT T)

    Defined at line 20287 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue promoteXINT_TO_FP (SDValue Op, const SDLoc & dl, SelectionDAG & DAG)

    Defined at line 20320 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isLegalConversion (MVT VT, MVT FloatVT, bool IsSigned, const X86Subtarget & Subtarget)

    Defined at line 20339 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool shouldUseHorizontalOp (bool IsSingleSource, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Horizontal vector math instructions may be slower than normal math with

    shuffles. Limit horizontal op codegen based on size/speed trade-offs, uarch

    implementation, and likely shuffle complexity of the alternate sequence.

    Defined at line 20505 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerUINT_TO_FP_i64 (SDValue Op, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    64-bit unsigned integer to double expansion.

    Defined at line 20513 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerUINT_TO_FP_i32 (SDValue Op, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    32-bit unsigned integer to float expansion.

    Defined at line 20581 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerUINT_TO_FP_v2i32 (SDValue Op, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 20631 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerUINT_TO_FP_vXi32 (SDValue Op, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 20684 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerUINT_TO_FP_vec (SDValue Op, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 20848 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool areUsedBitsDense (const APInt & UsedBits)

    Check that all bits set in

    form a dense region, i.e.,

    looks like 0..0 1..1 0..0.

    Defined at line 20950 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool areSlicesNextToEachOther (const LoadedSlice & First, const LoadedSlice & Second)

    Check whether or not

    and

    are next to each other

    in memory. This means that there is no hole between the bits loaded

    by

    and the bits loaded by

    Defined at line 20967 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void adjustCostForPairing (SmallVectorImpl<LoadedSlice> & LoadedSlices, LoadedSlice::Cost & GlobalLSCost)

    Adjust the

    according to the target

    paring capabilities and the layout of the slices.

    Defined at line 20982 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • bool isSlicingProfitable (SmallVectorImpl<LoadedSlice> & LoadedSlices, const APInt & UsedBits, bool ForCodeSize)

    Check the profitability of all involved LoadedSlice.

    Currently, it is considered profitable if there is exactly two

    involved slices (1) which are (2) next to each other in memory, and

    whose cost (

    Note: The order of the elements in

    may be modified, but not

    the elements themselves.

    FIXME: When the cost model will be mature enough, we can relax

    constraints (1) and (2).

    Defined at line 21048 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowerAVXExtend (SDValue Op, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 21182 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • pair CheckForMaskedLoad (SDValue V, SDValue Ptr, SDValue Chain)

    Check to see if V is (and load (ptr), imm), where the load is having

    specific bytes cleared out. If so, return the byte size being masked out

    and the shift amount.

    Defined at line 21189 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue SplitAndExtendv16i1 (unsigned int ExtOpc, MVT VT, SDValue In, const SDLoc & dl, SelectionDAG & DAG)

    Helper to split and extend a v16i1 mask to v16i8 or v16i16.

    Defined at line 21244 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerZERO_EXTEND_Mask (SDValue Op, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 21257 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue ShrinkLoadReplaceStoreWithStore (const std::pair<unsigned int, unsigned int> & MaskInfo, SDValue IVal, StoreSDNode * St, DAGCombiner * DC)

    Check to see if IVal is something that provides a value as specified by

    MaskInfo. If so, replace the specified store with a narrower store of

    truncated IVal.

    Defined at line 21259 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowerZERO_EXTEND (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 21313 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue truncateVectorWithPACK (unsigned int Opcode, EVT DstVT, SDValue In, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Helper to recursively truncate vector elements in half with PACKSS/PACKUS.

    It makes use of the fact that vectors with enough leading sign/zero bits

    prevent the PACKSS/PACKUS from saturating the results.

    AVX2 (Int256) sub-targets require extra shuffling as the PACK*S operates

    within each 128-bit lane.

    Defined at line 21331 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue truncateVectorWithPACKUS (EVT DstVT, SDValue In, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Truncate using inreg zero extension (AND mask) and X86ISD::PACKUS.

    e.g. trunc

    <

    8 x i32> X to

    <

    8 x i16> -->

    MaskX = X

    &

    0xffff (clear high bits to prevent saturation)

    packus (extract_subv MaskX, 0), (extract_subv MaskX, 1)

    Defined at line 21453 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue truncateVectorWithPACKSS (EVT DstVT, SDValue In, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Truncate using inreg sign extension and X86ISD::PACKSS.

    Defined at line 21461 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue matchTruncateWithPACK (unsigned int & PackOpcode, EVT DstVT, SDValue In, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget, SDNodeFlags Flags)

    Helper to determine if

    truncated to

    has the necessary

    signbits / leading zero bits to be truncated with PACKSS / PACKUS,

    possibly by converting a SRL node to SRA for sign extension.

    Defined at line 21473 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerTruncateVecPackWithSignBits (MVT DstVT, SDValue In, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG, SDNodeFlags Flags)

    This function lowers a vector truncation of 'extended sign-bits' or

    'extended zero-bits' values.

    vXi16/vXi32/vXi64 to vXi8/vXi16/vXi32 into X86ISD::PACKSS/PACKUS operations.

    Defined at line 21566 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerTruncateVecPack (MVT DstVT, SDValue In, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    This function lowers a vector truncation from vXi32/vXi64 to vXi8/vXi16 into

    X86ISD::PACKUS/X86ISD::PACKSS operations.

    Defined at line 21598 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerTruncateVecI1 (SDValue Op, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 21648 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue expandFP_TO_UINT_SSE (MVT VT, SDValue Src, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    We can leverage the specific way the "cvttps2dq/cvttpd2dq" instruction

    behaves on out of range inputs to generate optimized conversions.

    Defined at line 21851 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerFP16_TO_FP (SDValue Op, SelectionDAG & DAG)

    Defined at line 22689 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerFP_TO_FP16 (SDValue Op, SelectionDAG & DAG)

    Defined at line 22718 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerAddSubToHorizontalOp (SDValue Op, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Depending on uarch and/or optimizing for size, we might prefer to use a

    vector operation in place of the typical scalar operation.

    Defined at line 22774 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerFROUND (SDValue Op, SelectionDAG & DAG)

    ISD::FROUND is defined to round to nearest with ties rounding away from 0.

    This mode isn't supported in hardware on X86. But as long as we aren't

    compiling with trapping math, we can emulate this with

    trunc(X + copysign(nextafter(0.5, 0.0), X)).

    Defined at line 22858 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerFABSorFNEG (SDValue Op, SelectionDAG & DAG)

    The only differences between FABS and FNEG are the mask and the logic op.

    FNEG also has a folding opportunity for FNEG(FABS(x)).

    Defined at line 22880 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerFCOPYSIGN (SDValue Op, SelectionDAG & DAG)

    Defined at line 22941 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldToMaskedStore (StoreSDNode * Store, SelectionDAG & DAG, const SDLoc & Dl)

    Defined at line 22942 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowerFGETSIGN (SDValue Op, SelectionDAG & DAG)

    Defined at line 23011 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getBT (SDValue Src, SDValue BitNo, const SDLoc & DL, SelectionDAG & DAG)

    Helper for attempting to create a X86ISD::BT node.

    Defined at line 23030 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getSETCC (CondCode Cond, SDValue EFLAGS, const SDLoc & dl, SelectionDAG & DAG)

    Helper for creating a X86ISD::SETCC node.

    Defined at line 23071 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isOrXorXorTree (SDValue X, bool Root)

    Recursive helper for combineVectorSizedSetCCEquality() to see if we have a

    recognizable memcmp expansion.

    Defined at line 23079 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • template <typename F>
    SDValue emitOrXorXorTree (SDValue X, const SDLoc & DL, SelectionDAG & DAG, EVT VecVT, EVT CmpVT, bool HasPT, F SToV)

    Recursive helper for combineVectorSizedSetCCEquality() to emit the memcmp

    expansion.

    Defined at line 23091 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVectorSizedSetCCEquality (EVT VT, SDValue X, SDValue Y, CondCode CC, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to map a 128-bit or larger integer comparison to vector instructions

    before type legalization splits it up into chunks.

    Defined at line 23118 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool checkTreeSizes (ArrayRef Sizes, bool First)

    Checks if the quadratic mean deviation is less than 90% of the mean size.

    Defined at line 23220 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool matchScalarReduction (SDValue Op, NodeType BinOp, SmallVectorImpl<SDValue> & SrcOps, SmallVectorImpl<APInt> * SrcMask)

    Helper for matching BINOP(EXTRACTELT(X,0),BINOP(EXTRACTELT(X,1),...))

    style scalarized (associative) reduction patterns. Partial reductions

    are supported when the pointer SrcMask is non-null.

    TODO - move this to SelectionDAG?

    Defined at line 23269 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerVectorAllEqual (const SDLoc & DL, SDValue LHS, SDValue RHS, CondCode CC, const APInt & OriginalMask, const X86Subtarget & Subtarget, SelectionDAG & DAG, X86::CondCode & X86CC)

    Helper function for comparing all bits of two vectors.

    Defined at line 23338 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool mergeEltWithShuffle (SDValue & X, SDValue & Y, ArrayRef<int> Mask, SmallVectorImpl<int> & NewMask, SDValue Elt, unsigned int InsIndex)

    Merge an insertion into an existing shuffle:

    (insert_vector_elt (vector_shuffle X, Y, Mask),

    .(extract_vector_elt X, N), InsIndex)

    --> (vector_shuffle X, Y, NewMask)

    and variations where shuffle operands may be CONCAT_VECTORS.

    Defined at line 23402 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue MatchVectorAllEqualTest (SDValue OrigLHS, SDValue OrigRHS, CondCode CC, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG, X86::CondCode & X86CC)

    Check whether an AND/OR'd reduction tree is PTEST-able, or if we can fallback

    to CMP(MOVMSK(PCMPEQB(X,Y))).

    Defined at line 23486 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool hasNonFlagsUse (SDValue Op)

    return true if

    has a use that doesn't just read flags.

    Defined at line 23621 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isProfitableToUseFlagOp (SDValue Op)

    Transform to an x86-specific ALU node with flags if there is a chance of

    using an RMW op or only the flags are used. Otherwise, leave

    the node alone and emit a 'cmp' or 'test' instruction.

    Defined at line 23641 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue EmitTest (SDValue Op, CondCode X86CC, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Emit nodes that will be selected as "test Op0,Op0", or something

    equivalent.

    Defined at line 23653 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue EmitCmp (SDValue Op0, SDValue Op1, CondCode X86CC, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Emit nodes that will be selected as "cmp Op0,Op1", or something

    equivalent.

    Defined at line 23763 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue scalarizeExtractedBinOp (SDNode * ExtElt, SelectionDAG & DAG, const SDLoc & DL, bool LegalTypes)

    Transform a vector binary operation into a scalar binary operation by moving

    the math/logic after an extract element of a vector.

    Defined at line 23978 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowerAndToBT (SDValue And, CondCode CC, const SDLoc & dl, SelectionDAG & DAG, X86::CondCode & X86CC)

    Result of 'and' is compared against zero. Change to a BT node if possible.

    Returns the BT node and the condition code needed to use it.

    Defined at line 24045 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool cheapX86FSETCC_SSE (CondCode SetCCOpcode)

    Check if pre-AVX condcode can be performed by a single FCMP op.

    Defined at line 24113 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • unsigned int translateX86FSETCC (CondCode SetCCOpcode, SDValue & Op0, SDValue & Op1, bool & IsAlwaysSignaling)

    Turns an ISD::CondCode into a value suitable for SSE floating-point mask

    CMPs.

    Defined at line 24119 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue splitVSETCC (EVT VT, SDValue LHS, SDValue RHS, CondCode Cond, SelectionDAG & DAG, const SDLoc & dl)

    Break a VSETCC 256/512-bit vector into two new 128/256 ones and then

    concatenate the result back.

    Defined at line 24182 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerIntVSETCC_AVX512 (SDValue Op, const SDLoc & dl, SelectionDAG & DAG)

    Defined at line 24204 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue incDecVectorConstant (SDValue V, SelectionDAG & DAG, bool IsInc, bool NSW)

    Given a buildvector constant, return a new vector constant with each element

    incremented or decremented. If incrementing or decrementing would result in

    unsigned overflow or underflow or this is not a simple vector constant,

    return an empty value.

    Defined at line 24228 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerVSETCCWithSUBUS (SDValue Op0, SDValue Op1, MVT VT, CondCode Cond, const SDLoc & dl, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    As another special case, use PSUBUS[BW] when it's profitable. E.g. for

    Op0 u

    <

    = Op1:

    t = psubus Op0, Op1

    pcmpeq t,

    <

    0..0>

    Defined at line 24262 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerVSETCC (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 24317 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue EmitAVX512Test (SDValue Op0, SDValue Op1, CondCode CC, const SDLoc & dl, SelectionDAG & DAG, const X86Subtarget & Subtarget, SDValue & X86CC)

    Try to select this as a KORTEST+SETCC or KTEST+SETCC if possible.

    Defined at line 24792 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue reduceBuildVecToShuffleWithZero (SDNode * BV, SelectionDAG & DAG)

    Defined at line 24897 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • template <typename R, typename T>
    auto getFirstIndexOf (R && Range, const T & Val)

    FIXME: promote to STLExtras.

    Defined at line 24975 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • std::pair<SDValue, SDValue> getX86XALUOOp (X86::CondCode & Cond, SDValue Op, SelectionDAG & DAG)

    This function returns three things: the arithmetic computation itself

    (Value), an EFLAGS result (Overflow), and a condition code (Cond). The

    flag and the condition code define the case in which the arithmetic

    computation overflows.

    Defined at line 25061 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerXALUO (SDValue Op, SelectionDAG & DAG)

    Defined at line 25107 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isX86LogicalCmp (SDValue Op)

    Return true if opcode is a X86 logical comparison.

    Defined at line 25123 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isTruncWithZeroHighBitsInput (SDValue V, SelectionDAG & DAG)

    Defined at line 25137 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerSELECTWithCmpZero (SDValue CmpVal, SDValue LHS, SDValue RHS, unsigned int X86CC, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Lower various (select (icmp CmpVal, 0), LHS, RHS) custom patterns.

    Defined at line 25148 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineConcatVectorOfScalars (SDNode * N, SelectionDAG & DAG)

    Defined at line 25532 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowerSIGN_EXTEND_Mask (SDValue Op, const SDLoc & dl, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 25537 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineConcatVectorOfConcatVectors (SDNode * N, SelectionDAG & DAG)

    Attempt to merge nested concat_vectors/undefs.

    Fold concat_vectors(concat_vectors(x,y,z,w),u,u,concat_vectors(a,b,c,d))

    --> concat_vectors(x,y,z,w,u,u,u,u,u,u,u,u,a,b,c,d)

    Defined at line 25589 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowerANY_EXTEND (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 25592 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerEXTEND_VECTOR_INREG (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lowering for SIGN_EXTEND_VECTOR_INREG and ZERO_EXTEND_VECTOR_INREG.

    For sign extend this needs to handle all vector sizes and SSE4.1 and

    non-SSE4.1 targets. For zero extend this should only handle inputs of

    MVT::v64i8 when BWI is not supported, but AVX512 is.

    Defined at line 25609 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineConcatVectorOfExtracts (SDNode * N, SelectionDAG & DAG)

    Check to see if this is a CONCAT_VECTORS of a bunch of EXTRACT_SUBVECTOR

    operations. If so, and if the EXTRACT_SUBVECTOR vector inputs come from at

    most two distinct vectors the same size as the result, attempt to turn this

    into a legal shuffle.

    Defined at line 25628 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • RecurKind getRdxKind (Value * V)

    Gets recurrence kind from the specified value.

    Defined at line 25687 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • optional getAggregateSize (Instruction * InsertInst)

    Defined at line 25690 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue combineConcatVectorOfCasts (SDNode * N, SelectionDAG & DAG)

    Defined at line 25702 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • void findBuildAggregateRec (Instruction * LastInsertInst, TargetTransformInfo * TTI, SmallVectorImpl<Value *> & BuildVectorOpds, SmallVectorImpl<Value *> & InsertElts, unsigned int OperandOffset, const BoUpSLP & R)

    Defined at line 25718 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue LowerSIGN_EXTEND (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 25732 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool findBuildAggregate (Instruction * LastInsertInst, TargetTransformInfo * TTI, SmallVectorImpl<Value *> & BuildVectorOpds, SmallVectorImpl<Value *> & InsertElts, const BoUpSLP & R)

    Recognize construction of vectors like

    %ra = insertelement

    <

    4 x float> poison, float %s0, i32 0

    %rb = insertelement

    <

    4 x float> %ra, float %s1, i32 1

    %rc = insertelement

    <

    4 x float> %rb, float %s2, i32 2

    %rd = insertelement

    <

    4 x float> %rc, float %s3, i32 3

    starting from the last insertelement or insertvalue instruction.

    Also recognize homogeneous aggregates like {

    <

    2 x float>,

    <

    2 x float>},

    {{float, float}, {float, float}}, [2 x {float, float}] and so on.

    See llvm/test/Transforms/SLPVectorizer/X86/pr42022.ll for examples.

    Assume LastInsertInst is of InsertElementInst or InsertValueInst type.

    Returns

    true if it matches.

    Defined at line 25757 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue combineConcatVectorOfShuffleAndItsOperands (SDNode * N, SelectionDAG & DAG, const TargetLowering & TLI, bool LegalTypes, bool LegalOperations)

    See if this is a simple CONCAT_VECTORS with no UNDEF operands, and if one of

    the operands is a SHUFFLE_VECTOR, and all other operands are also operands

    to that SHUFFLE_VECTOR, create wider SHUFFLE_VECTOR.

    Defined at line 25768 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue splitVectorStore (StoreSDNode * Store, SelectionDAG & DAG)

    Change a vector store into a pair of half-size vector stores.

    Defined at line 25785 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * getReductionInstr (const DominatorTree * DT, PHINode * P, BasicBlock * ParentBB, LoopInfo * LI)

    Try and get a reduction instruction from a phi node.

    Given a phi node

    in a block

    consider possible reductions

    if they come from either

    or a containing loop latch.

    if not possible.

    Code

                                                    
                                                         nullptr 
                                                    
                                                

    Defined at line 25792 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue scalarizeVectorStore (StoreSDNode * Store, MVT StoreVT, SelectionDAG & DAG)

    Scalarize a vector store, bitcasting to TargetVT to determine the scalar

    type.

    Defined at line 25818 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchRdxBop (Instruction * I, Value *& V0, Value *& V1)

    Defined at line 25836 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue LowerStore (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 25852 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • Instruction * tryGetSecondaryReductionRoot (PHINode * Phi, Instruction * Root)

    We could have an initial reduction that is not an add.

    r *= v1 + v2 + v3 + v4

    In such a case start looking for a tree rooted in the first '+'.

    Defined at line 25862 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue combineConcatVectorOfSplats (SDNode * N, SelectionDAG & DAG, const TargetLowering & TLI, bool LegalTypes, bool LegalOperations)

    Defined at line 25866 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • Instruction * getNonPhiOperand (Instruction * I, PHINode * Phi)

    the first operand of

    that does not match

    If

    operand is not an instruction it returns nullptr.

    Defined at line 25880 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • bool isReductionCandidate (Instruction * I)

    Defined at line 25889 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue LowerLoad (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower vector extended loads using a shuffle. If SSSE3 is not available we

    may emit an illegal shuffle but the expansion is still better than scalar

    code. We generate sext/sext_invec for SEXTLOADs if it's available, otherwise

    we'll emit a shuffle and a arithmetic shift.

    FIXME: Is the expansion actually better than scalar code? It doesn't seem so.

    TODO: It is possible to support ZExt by zeroing the undef values during

    the shuffle phase or after the shuffle.

    Defined at line 25937 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isAndOrOfSetCCs (SDValue Op, unsigned int & Opc)

    Return true if node is an ISD::AND or ISD::OR of two X86ISD::SETCC nodes

    each of which has no other use apart from the AND / OR.

    Defined at line 25973 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getSubVectorSrc (SDValue V, unsigned int Index, EVT SubVT)

    Helper that peeks through INSERT_SUBVECTOR/CONCAT_VECTORS to find

    if the subvector can be sourced for free.

    Defined at line 26100 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue narrowInsertExtractVectorBinOp (EVT SubVT, SDValue BinOp, unsigned int Index, const SDLoc & DL, SelectionDAG & DAG, bool LegalOperations)

    Defined at line 26115 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue narrowExtractedVectorBinOp (EVT VT, SDValue Src, unsigned int Index, const SDLoc & DL, SelectionDAG & DAG, bool LegalOperations)

    If we are extracting a subvector produced by a wide binary operator try

    to use a narrow binary operator and/or avoid concatenation and extraction.

    Defined at line 26148 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • template <typename T>
    bool tryToVectorizeSequence (SmallVectorImpl<T *> & Incoming, function_ref<bool (T *, T *)> Comparator, function_ref<bool (ArrayRef<T *>, T *)> AreCompatible, function_ref<bool (ArrayRef<T *>, bool)> TryToVectorizeHelper, bool MaxVFOnly, BoUpSLP & R)

    Defined at line 26165 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue narrowExtractedVectorLoad (EVT VT, SDValue Src, unsigned int Index, const SDLoc & DL, SelectionDAG & DAG)

    If we are extracting a subvector from a wide vector load, convert to a

    narrow load to eliminate the extraction:

    (extract_subvector (load wide vector)) --> (load narrow vector)

    Defined at line 26273 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • template <bool IsCompatibility>
    bool compareCmp (Value * V, Value * V2, TargetLibraryInfo & TLI, const DominatorTree & DT)

    Compare two cmp instructions. If IsCompatibility is true, function returns

    true if 2 cmps have same/swapped predicates and mos compatible corresponding

    operands. If IsCompatibility is false, function implements strict weak

    ordering relation between two cmp instructions, returning true if the first

    instruction is "less" than the second, i.e. its predicate is less than the

    predicate of the second or the operands IDs are less than the operands IDs

    of the second cmp instruction.

    Defined at line 26284 of file llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  • SDValue LowerVACOPY (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 26311 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • unsigned int getTargetVShiftUniformOpcode (unsigned int Opc, bool IsVariable)

    Helper to get immediate/variable SSE shift opcode from other shift opcodes.

    Defined at line 26337 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldExtractSubvectorFromShuffleVector (EVT NarrowVT, SDValue Src, unsigned int Index, const SDLoc & DL, SelectionDAG & DAG, bool LegalOperations)

    Given EXTRACT_SUBVECTOR(VECTOR_SHUFFLE(Op0, Op1, Mask)),

    try to produce VECTOR_SHUFFLE(EXTRACT_SUBVECTOR(Op?, ?),

    EXTRACT_SUBVECTOR(Op?, ?),

    Mask'))

    iff it is legal and profitable to do so. Notably, the trimmed mask

    (containing only the elements that are extracted)

    must reference at most two subvectors.

    Defined at line 26338 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue getTargetVShiftByConstNode (unsigned int Opc, const SDLoc & dl, MVT VT, SDValue SrcOp, uint64_t ShiftAmt, SelectionDAG & DAG)

    Handle vector element shifts where the shift amount is a constant.

    Takes immediate version of shift as input.

    Defined at line 26357 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getTargetVShiftNode (unsigned int Opc, const SDLoc & dl, MVT VT, SDValue SrcOp, SDValue ShAmt, int ShAmtIdx, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Handle vector element shifts by a splat shift amount

    Defined at line 26409 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getMaskNode (SDValue Mask, MVT MaskVT, const X86Subtarget & Subtarget, SelectionDAG & DAG, const SDLoc & dl)

    Return Mask with the necessary casting or extending

    for

    according to

    when lowering masking intrinsics

    Defined at line 26506 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getVectorMaskingNode (SDValue Op, SDValue Mask, SDValue PreservedSrc, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Return (and

    for compare instructions or

    (vselect

    for others along with the

    necessary casting or extending for

    when lowering masking intrinsics

    Defined at line 26540 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getScalarMaskingNode (SDValue Op, SDValue Mask, SDValue PreservedSrc, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Creates an SDNode for a predicated scalar operation.

    Defined at line 26566 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • int getSEHRegistrationNodeSize (const Function * Fn)

    Defined at line 26602 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue recoverFramePointer (SelectionDAG & DAG, const Function * Fn, SDValue EntryEBP)

    When the MSVC runtime transfers control to us, either to an outlined

    function or when returning to a parent frame after catching an exception, we

    recover the parent frame pointer by doing arithmetic on the incoming EBP.

    Here's the math:

    RegNodeBase = EntryEBP - RegNodeSize

    ParentFP = RegNodeBase - ParentFrameOffset

    Subtracting RegNodeSize takes us to the offset of the registration node, and

    subtracting the offset (negative on x86) takes us back to the parent FP.

    Defined at line 26625 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldShuffleOfConcatUndefs (ShuffleVectorSDNode * Shuf, SelectionDAG & DAG)

    Try to convert a wide shuffle of concatenated vectors into 2 narrow shuffles

    followed by concatenation. Narrow vector ops may have better performance

    than wide ops, and this can unlock further narrowing of other vector ops.

    Targets can invert this transform later if it is not profitable.

    Defined at line 26711 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue partitionShuffleOfConcats (SDNode * N, SelectionDAG & DAG)

    Tries to turn a shuffle of two CONCAT_VECTORS into a single concat,

    or turn a shuffle of a single concat into simpler shuffle then concat.

    Defined at line 26759 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue combineShuffleOfScalars (ShuffleVectorSDNode * SVN, SelectionDAG & DAG, const TargetLowering & TLI)

    Attempt to combine a shuffle of 2 inputs of 'scalar sources' -

    BUILD_VECTOR or SCALAR_TO_VECTOR into a single BUILD_VECTOR.

    SHUFFLE(BUILD_VECTOR(), BUILD_VECTOR()) -> BUILD_VECTOR() is always

    a simplification in some sense, but it isn't appropriate in general: some

    BUILD_VECTORs are substantially cheaper than others. The general case

    of a BUILD_VECTOR requires inserting each element individually (or

    performing the equivalent in a temporary stack variable). A BUILD_VECTOR of

    all constants is a single constant pool load. A BUILD_VECTOR where each

    element is identical is a splat. A BUILD_VECTOR where most of the operands

    are undef lowers to a small number of element insertions.

    To deal with this, we currently use a bunch of mostly arbitrary heuristics.

    We don't fold shuffles where one side is a non-zero constant, and we don't

    fold shuffles if the resulting (non-splat) BUILD_VECTOR would have duplicate

    non-constant operands. This seems to work out reasonably well in practice.

    Defined at line 26838 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • std::optional<EVT> canCombineShuffleToExtendVectorInreg (unsigned int Opcode, EVT VT, std::function<bool (unsigned int)> Match, SelectionDAG & DAG, const TargetLowering & TLI, bool LegalTypes, bool LegalOperations)

    Match shuffles that can be converted to *_vector_extend_in_reg.

    This is often generated during legalization.

    e.g. v4i32

    <

    0,u,1,u> -> (v2i64 any_vector_extend_in_reg(v4i32 src)),

    and returns the EVT to which the extension should be performed.

    NOTE: this assumes that the src is the first operand of the shuffle.

    Defined at line 26921 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue combineShuffleToAnyExtendVectorInreg (ShuffleVectorSDNode * SVN, SelectionDAG & DAG, const TargetLowering & TLI, bool LegalOperations)

    Match shuffles that can be converted to any_vector_extend_in_reg.

    This is often generated during legalization.

    e.g. v4i32

    <

    0,u,1,u> -> (v2i64 any_vector_extend_in_reg(v4i32 src))

    Defined at line 26959 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue combineShuffleToZeroExtendVectorInReg (ShuffleVectorSDNode * SVN, SelectionDAG & DAG, const TargetLowering & TLI, bool LegalOperations)

    Match shuffles that can be converted to zero_extend_vector_inreg.

    This is often generated during legalization.

    e.g. v4i32

    <

    0,z,1,u> -> (v2i64 zero_extend_vector_inreg(v4i32 src))

    Defined at line 26997 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue combineTruncationShuffle (ShuffleVectorSDNode * SVN, SelectionDAG & DAG)

    Detect 'truncate_vector_inreg' style shuffles that pack the lower parts of

    each source element of a large type into the lowest elements of a smaller

    destination type. This is often generated during legalization.

    If the source node itself was a '*_extend_vector_inreg' node then we should

    then be able to remove it.

    Defined at line 27123 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue combineShuffleOfSplatVal (ShuffleVectorSDNode * Shuf, SelectionDAG & DAG)

    Combine shuffles of splat-shuffles of the form:

    shuffle (shuffle V, undef, splat-mask), undef, M

    If splat-mask contains undef elements, we need to be careful about

    introducing undef's in the folded mask which are not the result of composing

    the masks of the shuffles.

    Defined at line 27184 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue combineShuffleOfBitcast (ShuffleVectorSDNode * SVN, SelectionDAG & DAG, const TargetLowering & TLI, bool LegalOperations)

    Combine shuffles of bitcasts into a shuffle of the bitcast type, providing

    the mask can be treated as a larger type.

    Defined at line 27285 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue formSplatFromShuffles (ShuffleVectorSDNode * OuterShuf, SelectionDAG & DAG)

    Combine shuffle of shuffle of the form:

    shuf (shuf X, undef, InnerMask), undef, OuterMask --> splat X

    Defined at line 27332 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • int getShuffleMaskIndexOfOneElementFromOp0IntoOp1 (ArrayRef<int> Mask)

    If the shuffle mask is taking exactly one element from the first vector

    operand and passing through all other elements from the second vector

    operand, return the index of the mask element that is choosing an element

    from the first operand. Otherwise, return -1.

    Defined at line 27385 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue simplifyShuffleOfShuffle (ShuffleVectorSDNode * Shuf)

    If we have a unary shuffle of a shuffle, see if it can be folded away

    completely. This has the potential to lose undef knowledge because the first

    shuffle may not have an undef mask element where the second one does. So

    only call this after doing simplifications based on demanded elements.

    Defined at line 27472 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue getAVX2GatherNode (unsigned int Opc, SDValue Op, SelectionDAG & DAG, SDValue Src, SDValue Mask, SDValue Base, SDValue Index, SDValue ScaleOp, SDValue Chain, const X86Subtarget & Subtarget)

    Defined at line 27714 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getGatherNode (SDValue Op, SelectionDAG & DAG, SDValue Src, SDValue Mask, SDValue Base, SDValue Index, SDValue ScaleOp, SDValue Chain, const X86Subtarget & Subtarget)

    Defined at line 27746 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getScatterNode (unsigned int Opc, SDValue Op, SelectionDAG & DAG, SDValue Src, SDValue Mask, SDValue Base, SDValue Index, SDValue ScaleOp, SDValue Chain, const X86Subtarget & Subtarget)

    Defined at line 27784 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getPrefetchNode (unsigned int Opc, SDValue Op, SelectionDAG & DAG, SDValue Mask, SDValue Base, SDValue Index, SDValue ScaleOp, SDValue Chain, const X86Subtarget & Subtarget)

    Defined at line 27815 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue expandIntrinsicWChainHelper (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, unsigned int TargetOpcode, unsigned int SrcReg, const X86Subtarget & Subtarget, SmallVectorImpl<SDValue> & Results)

    Handles the lowering of builtin intrinsics with chain that return their

    value into registers EDX:EAX.

    If operand ScrReg is a valid register identifier, then operand 2 of N is

    copied to SrcReg. The assumption is that SrcReg is an implicit input to

    TargetOpcode.

    Returns a Glue value which can be used to add extra copy-from-reg if the

    expanded intrinsics implicitly defines extra registers (i.e. not just

    EDX:EAX).

    Defined at line 27845 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void getReadTimeStampCounter (SDNode * N, const SDLoc & DL, unsigned int Opcode, SelectionDAG & DAG, const X86Subtarget & Subtarget, SmallVectorImpl<SDValue> & Results)

    Handles the lowering of builtin intrinsics that read the time stamp counter

    (x86_rdtsc and x86_rdtscp). This function is also used to custom lower

    READCYCLECOUNTER nodes.

    Defined at line 27900 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerREADCYCLECOUNTER (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 27921 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue MarkEHRegistrationNode (SDValue Op, SelectionDAG & DAG)

    Defined at line 27930 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue MarkEHGuard (SDValue Op, SelectionDAG & DAG)

    Defined at line 27948 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue EmitTruncSStore (bool SignedSat, SDValue Chain, const SDLoc & DL, SDValue Val, SDValue Ptr, EVT MemVT, MachineMemOperand * MMO, SelectionDAG & DAG)

    Emit Truncating Store with signed or unsigned saturation.

    Defined at line 27967 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue EmitMaskedTruncSStore (bool SignedSat, SDValue Chain, const SDLoc & DL, SDValue Val, SDValue Ptr, SDValue Mask, EVT MemVT, MachineMemOperand * MMO, SelectionDAG & DAG)

    Emit Masked Truncating Store with signed or unsigned saturation.

    Defined at line 27979 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerINTRINSIC_W_CHAIN (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 27998 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerADJUST_TRAMPOLINE (SDValue Op, SelectionDAG & DAG)

    Defined at line 28686 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue scalarizeBinOpOfSplats (SDNode * N, SelectionDAG & DAG, const SDLoc & DL, bool LegalTypes)

    If a vector binop is performed on splat values, it may be profitable to

    extract, scalarize, and insert/splat.

    Defined at line 28805 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue createSetFPEnvNodes (SDValue Ptr, SDValue Chain, const SDLoc & DL, EVT MemVT, MachineMemOperand * MMO, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 29058 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • uint64_t getGFNICtrlImm (unsigned int Opcode, unsigned int Amt)

    Generate a GFNI gf2p8affine bitmask for vXi8 bitreverse/shift/rotate.

    Defined at line 29128 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getGFNICtrlMask (unsigned int Opcode, SelectionDAG & DAG, const SDLoc & DL, MVT VT, unsigned int Amt)

    Generate a GFNI gf2p8affine bitmask for vXi8 bitreverse/shift/rotate.

    Defined at line 29151 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerVectorCTLZ_AVX512CDI (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Lower a vector CTLZ using native supported vector CTLZ instruction.

    i8/i16 vector implemented using dword LZCNT vector instruction

    ( sub(trunc(lzcnt(zext32(x)))) ). In case zext32(x) is illegal,

    split the vector, perform operation on it's Lo a Hi part and

    concatenate the results.

    Defined at line 29170 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerVectorCTLZInRegLUT (SDValue Op, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Lower CTLZ using a PSHUFB lookup table implementation.

    Defined at line 29200 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerVectorCTLZ (SDValue Op, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29282 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerVectorCTLZ_GFNI (SDValue Op, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 29304 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerCTLZ (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29328 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerCTTZ (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29377 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerAddSub (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 29408 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerADDSAT_SUBSAT (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 29425 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerABS (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29495 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerAVG (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29531 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerMINMAX (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29547 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerFMINIMUM_FMAXIMUM (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29563 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue matchMergedBFX (SDValue Root, SelectionDAG & DAG, const TargetLowering & TLI)

    Defined at line 29644 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowerABD (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29732 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerMUL (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29785 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue takeInexpensiveLog2 (SelectionDAG & DAG, const SDLoc & DL, EVT VT, SDValue Op, unsigned int Depth, bool AssumeNonZero)

    This is basically just a port of takeLog2 from InstCombineMulDivRem.cpp

    Returns the node that represents `Log2(Op)`. This may create a new node. If

    we are unable to compute `Log2(Op)` its return `SDValue()`.

    All nodes will be created at `DL` and the output will be of type `VT`.

    This will only return `Log2(Op)` if we can prove `Op` is non-zero. Set

    `AssumeNonZero` if this function should simply assume (not require proving

    `Op` is non-zero).

    Defined at line 29832 of file llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  • SDValue LowervXi8MulWithUNPCK (SDValue A, SDValue B, const SDLoc & dl, MVT VT, bool IsSigned, const X86Subtarget & Subtarget, SelectionDAG & DAG, SDValue * Low)

    Defined at line 29939 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerMULH (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 29983 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerMULO (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Custom lowering for SMULO/UMULO.

    Defined at line 30090 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool supportedVectorShiftWithImm (EVT VT, const X86Subtarget & Subtarget, unsigned int Opcode)

    Return true if the required (according to Opcode) shift-imm form is natively

    supported by the Subtarget

    Defined at line 30353 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool supportedVectorShiftWithBaseAmnt (EVT VT, const X86Subtarget & Subtarget, unsigned int Opcode)

    The shift amount is a variable, but it is the same for all vector lanes.

    These instructions are defined together with shift-immediate.

    Defined at line 30381 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool supportedVectorVarShift (EVT VT, const X86Subtarget & Subtarget, unsigned int Opcode)

    Return true if the required (according to Opcode) variable-shift form is

    natively supported by the Subtarget

    Defined at line 30389 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerShiftByScalarImmediate (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 30416 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerShiftByScalarVariable (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 30563 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue convertShiftLeftToScale (SDValue Amt, const SDLoc & dl, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Convert a shift/rotate left amount to a multiplication scale factor.

    Defined at line 30627 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerShift (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 30682 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerFunnelShift (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 31415 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerRotate (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 31613 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • std::pair<Value *, BitTestKind> FindSingleBitChange (Value * V)

    Defined at line 31988 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool shouldExpandCmpArithRMWInIR (AtomicRMWInst * AI)

    Defined at line 32205 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue emitLockedStackOp (SelectionDAG & DAG, const X86Subtarget & Subtarget, SDValue Chain, const SDLoc & DL)

    Emit a locked operation on a stack location which does not change any

    memory location, but does involve a lock prefix. Location is chosen to be

    a) very likely accessed only by a single thread to minimize cache traffic,

    and b) definitely dereferenceable. Returns the new Chain result.

    Defined at line 32439 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerATOMIC_FENCE (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 32500 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerCMP_SWAP (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 32523 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getPMOVMSKB (const SDLoc & DL, SDValue V, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Create MOVMSKB, taking into account whether we need to split for AVX1.

    Defined at line 32562 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerBITCAST (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 32590 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerHorizontalByteSum (SDValue V, MVT VT, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Compute the horizontal sum of bytes in V for the elements of VT.

    Requires V to be a byte vector and VT to be an integer vector type with

    wider elements than V's type. The width of the elements of VT determines

    how many bytes of V are summed horizontally to produce each element of the

    result.

    Defined at line 32658 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerVectorCTPOPInRegLUT (SDValue Op, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 32722 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerVectorCTPOP (SDValue Op, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Please ensure that any codegen change from LowerVectorCTPOP is reflected in

    updated cost models in X86TTIImpl::getIntrinsicInstrCost.

    Defined at line 32769 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerCTPOP (SDValue N, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 32813 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerBITREVERSE_XOP (SDValue Op, SelectionDAG & DAG)

    Defined at line 32902 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerBITREVERSE (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 32947 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerPARITY (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 33036 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerAtomicArithWithLOCK (SDValue N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 33092 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerAtomicArith (SDValue N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Lower atomic_load_ops into LOCK-prefixed operations.

    Defined at line 33124 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerATOMIC_STORE (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 33192 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerADDSUBO_CARRY (SDValue Op, SelectionDAG & DAG)

    Defined at line 33281 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue ExtendToType (SDValue InOp, MVT NVT, SelectionDAG & DAG, bool FillWithZeroes)

    Widen a vector input to a vector of NVT. The

    input vector must have the same element type as NVT.

    Defined at line 33315 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerMSCATTER (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 33358 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerMLOAD (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 33421 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerMSTORE (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 33487 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerMGATHER (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 33529 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerADDRSPACECAST (SDValue Op, SelectionDAG & DAG)

    Defined at line 33582 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerCVTPS2PH (SDValue Op, SelectionDAG & DAG)

    Custom split CVTPS2PH with wide types.

    Defined at line 33623 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerPREFETCH (SDValue Op, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Defined at line 33636 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue LowerFCanonicalize (SDValue Op, SelectionDAG & DAG)

    Defined at line 33648 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • StringRef getInstrStrFromOpNo (const SmallVectorImpl<StringRef> & AsmStrs, unsigned int OpNo)

    Defined at line 33666 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getFlagsOfCmpZeroFori1 (SelectionDAG & DAG, const SDLoc & DL, SDValue Mask)

    Defined at line 33720 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • MachineBasicBlock * emitXBegin (MachineInstr & MI, MachineBasicBlock * MBB, const TargetInstrInfo * TII)

    Utility function to emit xbegin specifying the start of an RTM region.

    Defined at line 35980 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool checkAndUpdateEFLAGSKill (int SelectItr, MachineBasicBlock * BB, const TargetRegisterInfo * TRI)

    The EFLAGS operand of SelectItr might be missing a kill marker

    because there were multiple uses of EFLAGS, and ISel didn't know

    which to mark. Figure out whether SelectItr should have had a

    kill marker, and set it if it should. Returns the correct kill

    marker value.

    Defined at line 36347 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isCMOVPseudo (MachineInstr & MI)

    Return true if it is OK for this CMOV pseudo-opcode to be cascaded

    together with other CMOV pseudo-opcodes into a single basic-block with

    conditional jump around it.

    Defined at line 36362 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • MachineInstrBuilder createPHIsForCMOVsInSinkBB (int MIItBegin, int MIItEnd, MachineBasicBlock * TrueMBB, MachineBasicBlock * FalseMBB, MachineBasicBlock * SinkMBB)

    Helper function, which inserts PHI functions into SinkMBB:

    %Result(i) = phi [ %FalseValue(i), FalseMBB ], [ %TrueValue(i), TrueMBB ],

    where %FalseValue(i) and %TrueValue(i) are taken from the consequent CMOVs

    in [MIItBegin, MIItEnd) range. It returns the last MachineInstrBuilder for

    the last PHI function inserted.

    Defined at line 36401 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • unsigned int getSUBriOpcode (bool IsLP64)

    Defined at line 36751 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • unsigned int getOpcodeForIndirectThunk (unsigned int RPOpc)

    Defined at line 37083 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • const char * getIndirectThunkSymbol (const X86Subtarget & Subtarget, Register Reg)

    Defined at line 37097 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void computeKnownBitsForPSADBW (SDValue LHS, SDValue RHS, KnownBits & Known, const APInt & DemandedElts, const SelectionDAG & DAG, unsigned int Depth)

    Defined at line 38658 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void computeKnownBitsForPMADDWD (SDValue LHS, SDValue RHS, KnownBits & Known, const APInt & DemandedElts, const SelectionDAG & DAG, unsigned int Depth)

    Defined at line 38675 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • void computeKnownBitsForPMADDUBSW (SDValue LHS, SDValue RHS, KnownBits & Known, const APInt & DemandedElts, const SelectionDAG & DAG, unsigned int Depth)

    Defined at line 38697 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • KnownBits computeKnownBitsForHorizontalOperation (SDValue Op, const APInt & DemandedElts, unsigned int Depth, const SelectionDAG & DAG, const function_ref<KnownBits (const KnownBits &, const KnownBits &)> KnownBitsFunc)

    Defined at line 38720 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue narrowLoadToVZLoad (LoadSDNode * LN, MVT MemVT, MVT VT, SelectionDAG & DAG)

    Helper to look for a normal load that can be narrowed into a vzload with the

    specified VT and memory VT. Returns SDValue() on failure.

    Defined at line 39404 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchUnaryShuffle (MVT MaskVT, ArrayRef<int> Mask, bool AllowFloatDomain, bool AllowIntDomain, SDValue V1, const SelectionDAG & DAG, const X86Subtarget & Subtarget, unsigned int & Shuffle, MVT & SrcVT, MVT & DstVT)

    Attempt to match a combined shuffle mask against supported unary shuffle

    instructions.

    TODO: Investigate sharing more of this with shuffle lowering.

    Defined at line 39420 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchUnaryPermuteShuffle (MVT MaskVT, ArrayRef<int> Mask, const APInt & Zeroable, bool AllowFloatDomain, bool AllowIntDomain, const SelectionDAG & DAG, const X86Subtarget & Subtarget, unsigned int & Shuffle, MVT & ShuffleVT, unsigned int & PermuteImm)

    Attempt to match a combined shuffle mask against supported unary immediate

    permute instructions.

    TODO: Investigate sharing more of this with shuffle lowering.

    Defined at line 39578 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchBinaryShuffle (MVT MaskVT, ArrayRef<int> Mask, bool AllowFloatDomain, bool AllowIntDomain, SDValue & V1, SDValue & V2, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget, unsigned int & Shuffle, MVT & SrcVT, MVT & DstVT, bool IsUnary)

    Attempt to match a combined unary shuffle mask against supported binary

    shuffle instructions.

    TODO: Investigate sharing more of this with shuffle lowering.

    Defined at line 39727 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchBinaryPermuteShuffle (MVT MaskVT, ArrayRef<int> Mask, const APInt & Zeroable, bool AllowFloatDomain, bool AllowIntDomain, SDValue & V1, SDValue & V2, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget, unsigned int & Shuffle, MVT & ShuffleVT, unsigned int & PermuteImm)

    Defined at line 39923 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86ShuffleChain (ArrayRef<SDValue> Inputs, unsigned int RootOpc, MVT RootVT, ArrayRef<int> BaseMask, int Depth, ArrayRef<const SDNode *> SrcNodes, bool AllowVariableCrossLaneMask, bool AllowVariablePerLaneMask, bool IsMaskedShuffle, SelectionDAG & DAG, const SDLoc & DL, const X86Subtarget & Subtarget)

    Combine an arbitrary chain of shuffles into a single instruction if

    possible.

    This is the leaf of the recursive combine below. When we have found some

    chain of single-use x86 shuffle instructions and accumulated the combined

    shuffle mask represented by them, this will try to pattern match that mask

    into either a single instruction if there is a special purpose instruction

    for this operation, or into a PSHUFB instruction which is a fully general

    instruction but should only be used to replace chains over a certain depth.

    Defined at line 40128 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue canonicalizeShuffleMaskWithHorizOp (MutableArrayRef<SDValue> Ops, MutableArrayRef<int> Mask, unsigned int RootSizeInBits, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Canonicalize the combined shuffle mask chain with horizontal ops.

    NOTE: This may update the Ops and Mask.

    Defined at line 41014 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86ShuffleChainWithExtract (ArrayRef<SDValue> Inputs, unsigned int RootOpcode, MVT RootVT, ArrayRef<int> BaseMask, int Depth, ArrayRef<const SDNode *> SrcNodes, bool AllowVariableCrossLaneMask, bool AllowVariablePerLaneMask, bool IsMaskedShuffle, SelectionDAG & DAG, const SDLoc & DL, const X86Subtarget & Subtarget)

    Combine an arbitrary chain of shuffles + extract_subvectors into a single

    instruction if possible.

    Wrapper for combineX86ShuffleChain that extends the shuffle mask to a larger

    type size to attempt to combine:

    shuffle(extract_subvector(x,c1),extract_subvector(y,c2),m1)

    -->

    extract_subvector(shuffle(x,y,m2),0)

    Defined at line 40877 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86ShufflesConstants (MVT VT, ArrayRef<SDValue> Ops, ArrayRef<int> Mask, ArrayRef<const SDNode *> SrcNodes, SelectionDAG & DAG, const SDLoc & DL, const X86Subtarget & Subtarget)

    Attempt to constant fold all of the constant source ops.

    Returns true if the entire shuffle is folded to a constant.

    TODO: Extend this to merge multiple constant Ops and update the mask.

    Defined at line 41224 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86ShufflesRecursively (ArrayRef<SDValue> SrcOps, int SrcOpIndex, unsigned int RootOpc, MVT RootVT, ArrayRef<int> RootMask, ArrayRef<const SDNode *> SrcNodes, unsigned int Depth, unsigned int MaxDepth, bool AllowVariableCrossLaneMask, bool AllowVariablePerLaneMask, bool IsMaskedShuffle, SelectionDAG & DAG, const SDLoc & DL, const X86Subtarget & Subtarget)

    Fully generic combining of x86 shuffle instructions.

    This should be the last combine run over the x86 shuffle instructions. Once

    they have been fully optimized, this will recursively consider all chains

    of single-use shuffle instructions, build a generic model of the cumulative

    shuffle operation, and check for simpler instructions which implement this

    operation. We use this primarily for two purposes:

    1) Collapse generic shuffles to specialized single instructions when

    equivalent. In most cases, this is just an encoding size win, but

    sometimes we will collapse multiple generic shuffles into a single

    special-purpose shuffle.

    2) Look for sequences of shuffle instructions with 3 or more total

    instructions, and replace them with the slightly more expensive SSSE3

    PSHUFB instruction if available. We do this as the last combining step

    to ensure we avoid using PSHUFB if we can implement the shuffle with

    a suitable short sequence of other instructions. The PSHUFB will either

    use a register or have to read from memory and so is slightly (but only

    slightly) more expensive than the other shuffle instructions.

    Because this is inherently a quadratic operation (for each shuffle in

    a chain, we recurse up the chain), the depth is limited to 8 instructions.

    This should never be an issue in practice as the shuffle lowering doesn't

    produce sequences of more than 8 instructions.

    FIXME: We will currently miss some cases where the redundant shuffling

    would simplify under the threshold for PSHUFB formation because of

    combine-ordering. To fix this, we should do the redundant instruction

    combining in this recursive walk.

    Defined at line 41349 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86ShufflesRecursively (SDValue Op, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Helper entry wrapper to combineX86ShufflesRecursively.

    Defined at line 41804 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SmallVector<int, 4> getPSHUFShuffleMask (SDValue N)

    Get the PSHUF-style mask from PSHUF node.

    This is a very minor wrapper around getTargetShuffleMask to easy forming v4

    PSHUF-style masks that can be reused with such instructions.

    Defined at line 41817 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • APInt getBLENDIBlendMask (SDValue V)

    Get the expanded blend mask from a BLENDI node.

    For v16i16 nodes, this will splat the repeated i8 mask.

    Defined at line 41856 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineRedundantDWordShuffle (SDValue N, MutableArrayRef<int> Mask, const SDLoc & DL, SelectionDAG & DAG)

    Search for a combinable shuffle across a chain ending in pshufd.

    We walk up the chain and look for a combinable shuffle, skipping over

    shuffles that we could hoist this shuffle's transformation past without

    altering anything.

    Defined at line 41875 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineCommutableSHUFP (SDValue N, MVT VT, const SDLoc & DL, SelectionDAG & DAG)

    Attempt to commute shufps LHS loads:

    permilps(shufps(load(),x)) --> permilps(shufps(x,load()))

    Defined at line 42005 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBlendOfPermutes (MVT VT, SDValue N0, SDValue N1, ArrayRef<int> BlendMask, const APInt & DemandedElts, SelectionDAG & DAG, const X86Subtarget & Subtarget, const SDLoc & DL)

    Attempt to fold BLEND(PERMUTE(X),PERMUTE(Y)) -> PERMUTE(BLEND(X,Y))

    iff we don't demand the same element index for both X and Y.

    Defined at line 42059 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isUnaryOp (unsigned int Opcode)

    TODO - move this to TLI like isBinOp?

    Defined at line 42153 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue canonicalizeShuffleWithOp (SDValue N, SelectionDAG & DAG, const SDLoc & DL)

    Canonicalize SHUFFLE(UNARYOP(X)) -> UNARYOP(SHUFFLE(X)).

    Canonicalize SHUFFLE(BINOP(X,Y)) -> BINOP(SHUFFLE(X),SHUFFLE(Y)).

    Defined at line 42165 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue canonicalizeLaneShuffleWithRepeatedOps (SDValue V, SelectionDAG & DAG, const SDLoc & DL)

    Attempt to fold vpermf128(op(),op()) -> op(vpermf128(),vpermf128()).

    Defined at line 42354 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineTargetShuffle (SDValue N, const SDLoc & DL, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Try to combine x86 target specific shuffles.

    Defined at line 42406 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isAddSubOrSubAddMask (ArrayRef<int> Mask, bool & Op0Even)

    Checks if the shuffle mask takes subsequent elements

    alternately from two vectors.

    For example

    <

    0, 5, 2, 7> or

    <

    8, 1, 10, 3, 12, 5, 14, 7> are both correct.

    Defined at line 43334 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isAddSubOrSubAdd (SDNode * N, const X86Subtarget & Subtarget, SelectionDAG & DAG, SDValue & Opnd0, SDValue & Opnd1, bool & IsSubAdd, bool & HasAllowContract)

    Returns true iff the shuffle node

    can be replaced with ADDSUB(SUBADD)

    operation. If true is returned then the operands of ADDSUB(SUBADD) operation

    are written to the parameters

    and

    We combine shuffle to ADDSUB(SUBADD) directly on the abstract vector shuffle nodes

    so it is easier to generically match. We also insert dummy vector shuffle

    nodes for the operands which explicitly discard the lanes which are unused

    by this operation to try to flow through the rest of the combiner

    the fact that they're unused.

    Defined at line 43371 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineShuffleToFMAddSub (SDNode * N, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Combine shuffle of two fma nodes into FMAddSub or FMSubAdd.

    Defined at line 43433 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineShuffleToAddSubOrFMAddSub (SDNode * N, const SDLoc & DL, const X86Subtarget & Subtarget, SelectionDAG & DAG)

    Try to combine a shuffle into a target-specific add-sub or

    mul-add-sub node.

    Defined at line 43475 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue narrowShuffle (ShuffleVectorSDNode * Shuf, SelectionDAG & DAG)

    If we have a shuffle of AVX/AVX512 (256/512 bit) vectors that only uses the

    low half of each source vector and does not set any high half elements in

    the destination vector, narrow the shuffle to half its original size.

    Defined at line 43519 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineShuffle (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 43549 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool checkBitcastSrcVectorSize (SDValue Src, unsigned int Size, bool AllowTruncate, unsigned int Depth)

    Helper to peek through bitops/trunc/setcc to determine size of source vector.

    Allows combineBitcastvxi1 to determine what size vector generated a

    <X

    x i1>.

    Defined at line 45514 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • unsigned int getAltBitOpcode (unsigned int Opcode)

    Helper to flip between AND/OR/XOR opcodes and their X86ISD FP equivalents.

    Defined at line 45551 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue adjustBitcastSrcVectorSSE1 (SelectionDAG & DAG, SDValue Src, const SDLoc & DL)

    Helper to adjust v4i32 MOVMSK expansion to work with SSE1-only targets.

    Defined at line 45564 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue signExtendBitcastSrcVector (SelectionDAG & DAG, EVT SExtVT, SDValue Src, const SDLoc & DL)

    Helper to push sign extension of vXi1 SETCC result through bitops.

    Defined at line 45598 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBitcastvxi1 (SelectionDAG & DAG, EVT VT, SDValue Src, const SDLoc & DL, const X86Subtarget & Subtarget)

    Try to match patterns such as

    (i16 bitcast (v16i1 x))

    ->

    (i16 movmsk (16i8 sext (v16i1 x)))

    before the illegal vector is scalarized on subtargets that don't have legal

    vxi1 types.

    Defined at line 45629 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combinevXi1ConstantToInteger (SDValue Op, SelectionDAG & DAG)

    Convert a vXi1 constant build vector to the same width scalar integer.

    Defined at line 45779 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineCastedMaskArithmetic (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 45796 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue createMMXBuildVector (BuildVectorSDNode * BV, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 45844 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBitcastToBoolVector (EVT VT, SDValue V, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget, unsigned int Depth)

    Recursive function that attempts to find if a bool vector node was originally

    a vector/float/double that got truncated/extended/bitcast to/from a scalar

    integer. If so, replace the scalar ops with bool vector equivalents back down

    the chain.

    Defined at line 45924 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBitcast (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 46013 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool detectExtMul (SelectionDAG & DAG, const SDValue & Mul, SDValue & Op0, SDValue & Op1)

    (mul (zext a), (sext, b))

    Defined at line 46322 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue createVPDPBUSD (SelectionDAG & DAG, SDValue LHS, SDValue RHS, unsigned int & LogBias, const SDLoc & DL, const X86Subtarget & Subtarget)

    Defined at line 46352 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue createPSADBW (SelectionDAG & DAG, SDValue N0, SDValue N1, const SDLoc & DL, const X86Subtarget & Subtarget)

    Create a PSADBW given two sources representable as zexts of vXi8.

    Defined at line 46397 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMinMaxReduction (SDNode * Extract, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Attempt to replace an min/max v8i16/v16i8 horizontal reduction with

    PHMINPOSUW.

    Defined at line 46427 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combinePredicateReduction (SDNode * Extract, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Attempt to replace an all_of/any_of/parity style horizontal reduction with a MOVMSK.

    Defined at line 46501 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVPDPBUSDPattern (SDNode * Extract, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 46640 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBasicSADPattern (SDNode * Extract, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 46711 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineExtractFromVectorLoad (SDNode * N, EVT VecVT, SDValue SrcVec, uint64_t Idx, const SDLoc & dl, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    If this extract is from a loaded vector value and will be used as an

    integer, that requires a potentially expensive XMM -> GPR transfer.

    Additionally, if we can convert to a scalar integer load, that will likely

    be folded into a subsequent integer op.

    Note: SrcVec might not have a VecVT type, but it must be the same size.

    Note: Unlike the related fold for this in DAGCombiner, this is not limited

    to a single-use of the loaded vector. For the reasons above, we

    expect this to be profitable even if it creates an extra load.

    Defined at line 46803 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineExtractWithShuffle (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Attempt to peek through a target shuffle and extract the scalar from the

    source.

    Defined at line 46841 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue scalarizeExtEltFP (SDNode * ExtElt, SelectionDAG & DAG, const X86Subtarget & Subtarget, TargetLowering::DAGCombinerInfo & DCI)

    Extracting a scalar FP value from vector element 0 is free, so extract each

    operand first, then perform the math as a scalar op.

    Defined at line 47045 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineArithReduction (SDNode * ExtElt, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to convert a vector reduction sequence composed of binops and shuffles

    into horizontal ops.

    Defined at line 47148 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineExtractVectorElt (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Detect vector gather/scatter index generation and convert it from being a

    bunch of shuffles and extracts into a somewhat faster sequence.

    For i686, the best sequence is apparently storing the value and loading

    scalars back, while for x64 we should use 64-bit extracts and shifts.

    Defined at line 47341 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineToExtendBoolVectorInReg (unsigned int Opcode, const SDLoc & DL, EVT VT, SDValue N0, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Convert (vXiY *ext(vXi1 bitcast(iX))) to extend_in_reg(broadcast(iX)).

    This is more or less the reverse of combineBitcastvxi1.

    Defined at line 47519 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue narrowVectorSelect (SDNode * N, SelectionDAG & DAG, const SDLoc & DL, const X86Subtarget & Subtarget)

    If both arms of a vector select are concatenated vectors, split the select,

    and concatenate the result to eliminate a wide (256-bit) vector instruction:

    vselect Cond, (concat T0, T1), (concat F0, F1) -->

    concat (vselect (split Cond), T0, F0), (vselect (split Cond), T1, F1)

    Defined at line 47618 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSelectOfTwoConstants (SDNode * N, SelectionDAG & DAG, const SDLoc & DL)

    Defined at line 47645 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVSelectToBLENDV (SDNode * N, SelectionDAG & DAG, const SDLoc & DL, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    If this is a *dynamic* select (non-constant condition) and we can match

    this node with one of the variable blend instructions, restructure the

    condition so that blends can use the high (sign) bit of each element.

    This function will also call SimplifyDemandedBits on already created

    BLENDV to perform additional simplifications.

    Defined at line 47722 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineLogicBlendIntoConditionalNegate (EVT VT, SDValue Mask, SDValue X, SDValue Y, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to match:

    (or (and (M, (sub 0, X)), (pandn M, X)))

    which is a special case of:

    (select M, (sub 0, X), X)

    Per:

    http://graphics.stanford.edu/~seander/bithacks.html#ConditionalNegate

    We know that, if fNegate is 0 or 1:

    (fNegate ? -v : v) == ((v ^ -fNegate) + fNegate)

    Here, we have a mask, M (all 1s or 0), and, similarly, we know that:

    ((M

    &

    1) ? -X : X) == ((X ^ -(M

    &

    1)) + (M

    &

    1))

    ( M ? -X : X) == ((X ^ M ) + (M

    &

    1))

    This lets us transform our vselect to:

    (add (xor X, M), (and M, 1))

    And further to:

    (sub (xor X, M), M)

    Defined at line 47829 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue commuteSelect (SDNode * N, SelectionDAG & DAG, const SDLoc & DL, const X86Subtarget & Subtarget)

    Defined at line 47867 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSelect (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Do target-specific dag combines on SELECT and VSELECT nodes.

    Defined at line 47893 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSetCCAtomicArith (SDValue Cmp, X86::CondCode & CC, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Combine:

    (brcond/cmov/setcc .., (cmp (atomic_load_add x, 1), 0), COND_S)

    to:

    (brcond/cmov/setcc .., (LADD x, 1), COND_LE)

    i.e., reusing the EFLAGS produced by the LOCKed instruction.

    Note that this is only legal for some op/cc combinations.

    Defined at line 48491 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue checkSignTestSetCCCombine (SDValue Cmp, X86::CondCode & CC, SelectionDAG & DAG)

    Check whether we're just testing the signbit, and whether we can simplify

    this by tracking where the signbit came from.

    Defined at line 48610 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue checkBoolTestSetCCCombine (SDValue Cmp, X86::CondCode & CC)

    Check whether a boolean test is testing a boolean value generated by

    X86ISD::SETCC. If so, return the operand of that SETCC and proper condition

    code.

    Simplify the following patterns:

    (Op (CMP (SETCC Cond EFLAGS) 1) EQ) or

    (Op (CMP (SETCC Cond EFLAGS) 0) NEQ)

    to (Op EFLAGS Cond)

    (Op (CMP (SETCC Cond EFLAGS) 0) EQ) or

    (Op (CMP (SETCC Cond EFLAGS) 1) NEQ)

    to (Op EFLAGS !Cond)

    where Op could be BRCOND or CMOV.

    Defined at line 48683 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool checkBoolTestAndOrSetCCCombine (SDValue Cond, X86::CondCode & CC0, X86::CondCode & CC1, SDValue & Flags, bool & isAnd)

    Check whether Cond is an AND/OR of SETCCs off of the same EFLAGS.

    Match:

    (X86or (X86setcc) (X86setcc))

    (X86cmp (and (X86setcc) (X86setcc)), 0)

    Defined at line 48801 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineCarryThroughADD (SDValue EFLAGS, SelectionDAG & DAG)

    When legalizing carry, we create carries via add X, -1

    If that comes from an actual carry, via setcc, we use the

    carry directly.

    Defined at line 48842 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combinePTESTCC (SDValue EFLAGS, X86::CondCode & CC, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    If we are inverting an PTEST/TESTP operand, attempt to adjust the CC

    to avoid the inversion.

    Defined at line 48901 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSetCCMOVMSK (SDValue EFLAGS, X86::CondCode & CC, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Attempt to simplify the MOVMSK input based on the comparison type.

    Defined at line 49099 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSetCCEFLAGS (SDValue EFLAGS, X86::CondCode & CC, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Optimize an EFLAGS definition used according to the condition code

    into a simpler EFLAGS value, potentially returning a new

    and replacing

    uses of chain values.

    Defined at line 49334 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineCMov (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Optimize X86ISD::CMOV [LHS, RHS, CONDCODE (e.g. X86::COND_NE), CONDVAL]

    Defined at line 49357 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool canReduceVMulWidth (SDNode * N, SelectionDAG & DAG, ShrinkMode & Mode)

    Defined at line 49616 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue reduceVMULWidth (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    When the operands of vector mul are extended from smaller size values,

    like i8 and i16, the type of mul may be shrinked to generate more

    efficient code. Two typical patterns are handled:

    Pattern1:

    %2 = sext/zext

    <N

    x i8> %1 to

    <N

    x i32>

    %4 = sext/zext

    <N

    x i8> %3 to

    <N

    x i32>

    or %4 = build_vector

    <N

    x i32> %C1, ..., %CN (%C1..%CN are constants)

    %5 = mul

    <N

    x i32> %2, %4

    Pattern2:

    %2 = zext/sext

    <N

    x i16> %1 to

    <N

    x i32>

    %4 = zext/sext

    <N

    x i16> %3 to

    <N

    x i32>

    or %4 = build_vector

    <N

    x i32> %C1, ..., %CN (%C1..%CN are constants)

    %5 = mul

    <N

    x i32> %2, %4

    There are four mul shrinking modes:

    If %2 == sext32(trunc8(%2)), i.e., the scalar value range of %2 is

    -128 to 128, and the scalar value range of %4 is also -128 to 128,

    generate pmullw+sext32 for it (MULS8 mode).

    If %2 == zext32(trunc8(%2)), i.e., the scalar value range of %2 is

    0 to 255, and the scalar value range of %4 is also 0 to 255,

    generate pmullw+zext32 for it (MULU8 mode).

    If %2 == sext32(trunc16(%2)), i.e., the scalar value range of %2 is

    -32768 to 32767, and the scalar value range of %4 is also -32768 to 32767,

    generate pmullw+pmulhw for it (MULS16 mode).

    If %2 == zext32(trunc16(%2)), i.e., the scalar value range of %2 is

    0 to 65535, and the scalar value range of %4 is also 0 to 65535,

    generate pmullw+pmulhuw for it (MULU16 mode).

    Defined at line 49678 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMulSpecial (uint64_t MulAmt, SDNode * N, SelectionDAG & DAG, EVT VT, const SDLoc & DL)

    Defined at line 49747 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMulToPMADDWD (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    If the upper 17 bits of either element are zero and the other element are

    zero/sign bits then we can use PMADDWD, which is always at least as quick as

    PMULLD, except on KNL.

    Defined at line 49836 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMulToPMULDQ (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 49947 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMulToPMADD52 (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 49989 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMul (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 50023 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineShiftToPMULH (SDNode * N, SelectionDAG & DAG, const SDLoc & DL, const X86Subtarget & Subtarget)

    Try to form a MULHU or MULHS node by looking for

    (srl (mul ext, ext), 16)

    TODO: This is X86 specific because we want to be able to handle wide types

    before type legalization. But we can only do it if the vector will be

    legalized via widening/splitting. Type legalization can't handle promotion

    of a MULHU/MULHS. There isn't a way to convey this to the generic DAG

    combiner.

    Defined at line 50205 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineShiftLeft (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 50247 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineShiftRightArithmetic (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 50315 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineShiftRightLogical (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 50383 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineHorizOpWithShuffle (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 50459 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVectorPack (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 50605 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVectorHADDSUB (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 50756 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVectorShiftVar (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 50804 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVectorShiftImm (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 50837 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVectorInsert (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 50990 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineCompareEqual (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Recognize the distinctive (AND (setcc ...) (setcc ..)) where both setccs

    reference the same FP CMP, and rewrite for CMPEQSS and friends. Likewise for

    OR -> CMPNEQSS.

    Defined at line 51029 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAndNotIntoANDNP (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    Try to fold: (and (xor X, -1), Y) -> (andnp X, Y).

    Defined at line 51137 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAndShuffleNot (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to fold:

    and (vector_shuffle

    <Z

    ,...,Z>

    (insert_vector_elt undef, (xor X, -1), Z), undef), Y

    ->

    andnp (vector_shuffle

    <Z

    ,...,Z>

    (insert_vector_elt undef, X, Z), undef), Y

    Defined at line 51169 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue PromoteMaskArithmetic (SDValue N, const SDLoc & DL, EVT VT, SelectionDAG & DAG, const X86Subtarget & Subtarget, unsigned int Depth)

    Try to widen AND, OR and XOR nodes to VT in order to remove casts around

    logical operations, like in the example below.

    or (and (truncate x, truncate y)),

    (xor (truncate z, build_vector (constants)))

    Given a target type

    we generate

    or (and x, y), (xor z, zext(build_vector (constants)))

    given x, y and z are of type

    We can do so, if operands are either

    truncates from VT types, the second operand is a vector of constants, can

    be recursively promoted or is an existing extension we can extend further.

    Defined at line 51255 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue PromoteMaskArithmetic (SDValue N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    On AVX/AVX2 the type v8i1 is legalized to v8i16, which is an XMM sized

    register. In most cases we actually compare or select YMM-sized registers

    and mixing the two types creates horrible code. This method optimizes

    some of the transition sequences.

    Even with AVX-512 this is still useful for removing casts around logical

    operations on vXi1 mask types.

    Defined at line 51315 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • unsigned int convertIntLogicToFPLogicOpcode (unsigned int Opcode)

    Defined at line 51343 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue convertIntLogicToFPLogic (unsigned int Opc, const SDLoc & DL, EVT VT, SDValue N0, SDValue N1, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    If both input operands of a logic op are being cast from floating-point

    types or FP compares, try to convert this into a floating-point logic node

    to avoid unnecessary moves from SSE to integer registers.

    Defined at line 51359 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBitOpWithMOVMSK (unsigned int Opc, const SDLoc & DL, SDValue N0, SDValue N1, SelectionDAG & DAG)

    Attempt to fold BITOP(MOVMSK(X),MOVMSK(Y)) -> MOVMSK(BITOP(X,Y))

    to reduce XMM->GPR traffic.

    Defined at line 51423 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBitOpWithShift (unsigned int Opc, const SDLoc & DL, EVT VT, SDValue N0, SDValue N1, SelectionDAG & DAG)

    Attempt to fold BITOP(SHIFT(X,Z),SHIFT(Y,Z)) -> SHIFT(BITOP(X,Y),Z).

    NOTE: This is a very limited case of what SimplifyUsingDistributiveLaws

    handles in InstCombine.

    Defined at line 51454 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBitOpWithPACK (unsigned int Opc, const SDLoc & DL, EVT VT, SDValue N0, SDValue N1, SelectionDAG & DAG)

    Attempt to fold:

    BITOP(PACKSS(X,Z),PACKSS(Y,W)) --> PACKSS(BITOP(X,Y),BITOP(Z,W)).

    TODO: Handle PACKUS handling.

    Defined at line 51492 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAndMaskToShift (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    If this is a zero/all-bits result that is bitwise-anded with a low bits

    mask. (Mask == 1 for the x86 lowering of a SETCC + ZEXT), replace the 'and'

    with a shift-right to eliminate loading the vector constant mask value.

    Defined at line 51530 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getIndexFromUnindexedLoad (LoadSDNode * Ld)

    Get the index node from the lowered DAG of a GEP IR instruction with one

    indexing dimension.

    Defined at line 51591 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool hasBZHI (const X86Subtarget & Subtarget, MVT VT)

    Defined at line 51606 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAndNotOrIntoAndNotAnd (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    Folds (and X, (or Y, ~Z)) --> (and X, ~(and ~Y, Z))

    This undoes the inverse fold performed in InstCombine

    Defined at line 51613 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAndLoadToBZHI (SDNode * Node, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    This function recognizes cases where X86 bzhi instruction can replace and

    'and-load' sequence.

    In case of loading integer value from an array of constants which is defined

    as follows:

    int array[SIZE] = {0x0, 0x1, 0x3, 0x7, 0xF ..., 2^(SIZE-1) - 1}

    then applying a bitwise and on the result with another input.

    It's equivalent to performing bzhi (zero high bits) on the input, with the

    same index of the load.

    Defined at line 51645 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineScalarAndWithMaskSetcc (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Look for (and (bitcast (vXi1 (concat_vectors (vYi1 setcc), undef,))), C)

    Where C is a mask containing the same number of bits as the setcc and

    where the setcc will freely 0 upper bits of k-register. We can replace the

    undef in the concat with 0s and remove the AND. This mainly helps with

    v2i1/v4i1 setcc being casted to scalar.

    Defined at line 51720 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getBMIMatchingOp (unsigned int Opc, SelectionDAG & DAG, SDValue OpMustEq, SDValue Op, unsigned int Depth)

    Defined at line 51800 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBMILogicOp (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 51845 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAndXorSubWithBMI (SDNode * And, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Fold AND(Y, XOR(X, NEG(X))) -> ANDN(Y, BLSMSK(X)) if BMI is available.

    Defined at line 51865 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86SubCmpForFlags (SDNode * N, SDValue Flag, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & ST)

    Defined at line 51889 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAndOrForCcmpCtest (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & ST)

    Defined at line 51951 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAnd (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 52031 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue canonicalizeBitSelect (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Canonicalize OR(AND(X,C),AND(Y,~C)) -> OR(AND(X,C),ANDNP(C,Y))

    Defined at line 52325 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool matchLogicBlend (SDNode * N, SDValue & X, SDValue & Y, SDValue & Mask)

    Try to match OR(ANDNP(MASK,X),AND(MASK,Y)) logic pattern.

    TODO: Try to match OR(AND(~MASK,X),AND(MASK,Y)) logic pattern.

    Waiting for ANDNP combine allows other combines to happen that prevent

    matching.

    Defined at line 52392 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineLogicBlendIntoPBLENDV (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to fold:

    (or (and (m, y), (pandn m, x)))

    into:

    (vselect m, x, y)

    As a special case, try to fold:

    (or (and (m, (sub 0, x)), (pandn m, x)))

    into:

    (sub (xor X, M), M)

    Defined at line 52406 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerX86CmpEqZeroToCtlzSrl (SDValue Op, SelectionDAG & DAG)

    Helper function for combineOrCmpEqZeroToCtlzSrl

    Transforms:

    seteq(cmp x, 0)

    into:

    srl(ctlz x), log2(bitsize(x))

    Input pattern is checked by caller.

    Defined at line 52460 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineOrCmpEqZeroToCtlzSrl (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Try to transform:

    zext(or(setcc(eq, (cmp x, 0)), setcc(eq, (cmp y, 0))))

    into:

    srl(or(ctlz(x), ctlz(y)), log2(bitsize(x))

    Will also attempt to match more generic cases, eg:

    zext(or(or(setcc(eq, cmp 0), setcc(eq, cmp 0)), setcc(eq, cmp 0)))

    Only applies if the target supports the FastLZCNT feature.

    Defined at line 52481 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAddOrSubToADCOrSBB (bool IsSub, const SDLoc & DL, EVT VT, SDValue X, SDValue Y, SelectionDAG & DAG, bool ZeroSecondOpOnly)

    If this is an add or subtract where one operand is produced by a cmp+setcc,

    then try to convert it to an ADC or SBB. This replaces TEST+SET+{ADD/SUB}

    with CMP+{ADC, SBB}.

    Also try (ADD/SUB)+(AND(SRL,1)) bit extraction pattern with BT+{ADC, SBB}.

    Defined at line 52560 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAddOrSubToADCOrSBB (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    If this is an add or subtract where one operand is produced by a cmp+setcc,

    then try to convert it to an ADC or SBB. This replaces TEST+SET+{ADD/SUB}

    with CMP+{ADC, SBB}.

    Defined at line 52769 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineOrXorWithSETCC (unsigned int Opc, const SDLoc & DL, EVT VT, SDValue N0, SDValue N1, SelectionDAG & DAG)

    Defined at line 52789 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineOr (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 52825 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldXorTruncShiftIntoCmp (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    Try to turn tests against the signbit in the form of:

    XOR(TRUNCATE(SRL(X, size(X)-1)), 1)

    into:

    SETGT(X, -1)

    Defined at line 52994 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldVectorXorShiftIntoCmp (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Turn vector tests of the signbit in the form of:

    xor (sra X, elt_size(X)-1), -1

    into:

    pcmpgt X, -1

    This should be called before type legalization because the pattern may not

    persist after that.

    Defined at line 53050 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue detectUSatPattern (SDValue In, EVT VT, SelectionDAG & DAG, const SDLoc & DL)

    Detect patterns of truncation with unsigned saturation:

    1. (truncate (umin (x, unsigned_max_of_dest_type)) to dest_type).

    Return the source value x to be truncated or SDValue() if the pattern was

    not matched.

    2. (truncate (smin (smax (x, C1), C2)) to dest_type),

    where C1 >= 0 and C2 is unsigned max of destination type.

    (truncate (smax (smin (x, C2), C1)) to dest_type)

    where C1 >= 0, C2 is unsigned max of destination type and C1

    <

    = C2.

    These two patterns are equivalent to:

    (truncate (umin (smax(x, C1), unsigned_max_of_dest_type)) to dest_type)

    So return the smax(x, C1) value to be truncated or SDValue() if the

    pattern was not matched.

    Defined at line 53106 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue detectSSatPattern (SDValue In, EVT VT, bool MatchPackUS)

    Detect patterns of truncation with signed saturation:

    (truncate (smin ((smax (x, signed_min_of_dest_type)),

    signed_max_of_dest_type)) to dest_type)

    or:

    (truncate (smax ((smin (x, signed_max_of_dest_type)),

    signed_min_of_dest_type)) to dest_type).

    With MatchPackUS, the smax/smin range is [0, unsigned_max_of_dest_type].

    Return the source value to be truncated or SDValue() if the pattern was not

    matched.

    Defined at line 53146 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineTruncateWithSat (SDValue In, EVT VT, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 53173 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineConstantPoolLoads (SDNode * N, const SDLoc & dl, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 53273 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineLoad (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 53349 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • int getOneTrueElt (SDValue V)

    If V is a build vector of boolean constants and exactly one of those

    constants is true, return the operand index of that true element.

    Otherwise, return -1.

    Defined at line 53456 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool getParamsForOneTrueMaskedElt (MaskedLoadStoreSDNode * MaskedOp, SelectionDAG & DAG, SDValue & Addr, SDValue & Index, Align & Alignment, unsigned int & Offset)

    Given a masked memory load/store operation, return true if it has one mask

    bit set. If it has one mask bit set, then also return the memory address of

    the scalar element to load/store, the vector index to insert/extract that

    scalar element, and the alignment for the scalar memory access.

    Defined at line 53491 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue reduceMaskedLoadToScalarLoad (MaskedLoadSDNode * ML, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    If exactly one element of the mask is set for a non-extending masked load,

    it is a scalar load and vector insert.

    Note: It is expected that the degenerate cases of an all-zeros or all-ones

    mask have already been optimized in IR, so we don't bother with those here.

    Defined at line 53519 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMaskedLoadConstantMask (MaskedLoadSDNode * ML, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 53560 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMaskedLoad (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 53609 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue reduceMaskedStoreToScalarStore (MaskedStoreSDNode * MS, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    If exactly one element of the mask is set for a non-truncating masked store,

    it is a vector extract and scalar store.

    Note: It is expected that the degenerate cases of an all-zeros or all-ones

    mask have already been optimized in IR, so we don't bother with those here.

    Defined at line 53656 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMaskedStore (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 53688 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue narrowBitOpRMW (StoreSDNode * St, const SDLoc & DL, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Look for a RMW operation that only touches one bit of a larger than legal

    type and fold it to a BTC/BTR/BTS or bit insertion pattern acting on a single

    i32 sub value.

    Defined at line 53766 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineStore (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 53873 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVEXTRACT_STORE (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 54225 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isHorizontalBinOp (unsigned int HOpcode, SDValue & LHS, SDValue & RHS, SelectionDAG & DAG, const X86Subtarget & Subtarget, bool IsCommutative, SmallVectorImpl<int> & PostShuffleMask, bool ForceHorizOp)

    Return 'true' if this vector operation is "horizontal"

    and return the operands for the horizontal operation in LHS and RHS. A

    horizontal operation performs the binary operation on successive elements

    of its first operand, then on successive elements of its second operand,

    returning the resulting values in a vector. For example, if

    A =

    <

    float a0, float a1, float a2, float a3 >

    and

    B =

    <

    float b0, float b1, float b2, float b3 >

    then the result of doing a horizontal operation on A and B is

    A horizontal-op B =

    <

    a0 op a1, a2 op a3, b0 op b1, b2 op b3 >.

    In short, LHS and RHS are inspected to see if LHS op RHS is of the form

    A horizontal-op B, for some already available A and B, and if so then LHS is

    set to A, RHS to B, and the routine returns 'true'.

    Defined at line 54261 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineToHorizontalAddSub (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to synthesize horizontal (f)hadd/hsub from (f)adds/subs of shuffles.

    Defined at line 54449 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFMulcFCMulc (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to combine the following nodes

    t29: i64 = X86ISD::Wrapper TargetConstantPool:i64

    <i32

    -2147483648[float -0.000000e+00]> 0

    t27: v16i32[v16f32],ch = X86ISD::VBROADCAST_LOAD

    <

    (load 4 from constant-pool)> t0, t29

    [t30: v16i32 = bitcast t27]

    t6: v16i32 = xor t7, t27[t30]

    t11: v16f32 = bitcast t6

    t21: v16f32 = X86ISD::VFMULC[X86ISD::VCFMULC] t11, t8

    into X86ISD::VFCMULC[X86ISD::VFMULC] if possible:

    t22: v16f32 = bitcast t7

    t23: v16f32 = X86ISD::VFCMULC[X86ISD::VFMULC] t8, t22

    t24: v32f16 = bitcast t23

    Defined at line 54529 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFaddCFmul (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to combine the following nodes:

    FADD(A, FMA(B, C, 0)) and FADD(A, FMUL(B, C)) to FMA(B, C, A)

    Defined at line 54570 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFaddFsub (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Do target-specific dag combines on floating-point adds/subs.

    Defined at line 54639 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineLRINT_LLRINT (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 54650 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combinei64TruncSrlConstant (SDValue N, EVT VT, SelectionDAG & DAG, const SDLoc & DL)

    Attempt to fold some (truncate (srl (add/or/xor X, C1), C2)) patterns to

    (add/or/xor (truncate (srl X, C2)), C1'). C1' will be smaller than C1 so we

    are able to avoid generating code with MOVABS and large constants in certain

    cases.

    Defined at line 54692 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineTruncatedArithmetic (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget, const SDLoc & DL)

    Attempt to pre-truncate inputs to arithmetic ops if it will simplify

    the codegen.

    e.g. TRUNC( BINOP( X, Y ) ) --> BINOP( TRUNC( X ), TRUNC( Y ) )

    TODO: This overlaps with the generic combiner's visitTRUNCATE. Remove

    anything that is guaranteed to be transformed by DAGCombiner.

    Defined at line 54734 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combinePMULH (SDValue Src, EVT VT, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Try to form a MULHU or MULHS node by looking for

    (trunc (srl (mul ext, ext), >= 16))

    TODO: This is X86 specific because we want to be able to handle wide types

    before type legalization. But we can only do it if the vector will be

    legalized via widening/splitting. Type legalization can't handle promotion

    of a MULHU/MULHS. There isn't a way to convey this to the generic DAG

    combiner.

    Defined at line 54816 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue detectPMADDUBSW (SDValue In, EVT VT, SelectionDAG & DAG, const X86Subtarget & Subtarget, const SDLoc & DL)

    Attempt to match PMADDUBSW, which multiplies corresponding unsigned bytes

    from one vector with signed bytes from another vector, adds together

    adjacent pairs of 16-bit products, and saturates the result before

    truncating to 16-bits.

    Which looks something like this:

    (i16 (ssat (add (mul (zext (even elts (i8 A))), (sext (even elts (i8 B)))),

    (mul (zext (odd elts (i8 A)), (sext (odd elts (i8 B))))))))

    Defined at line 54905 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineTruncate (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 55025 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVTRUNC (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 55099 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue isFNEG (SelectionDAG & DAG, SDNode * N, unsigned int Depth)

    Returns the negated value if the node

    flips sign of FP value.

    FP-negation node may have different forms: FNEG(x), FXOR (x, 0x80000000)

    or FSUB(0, x)

    AVX512F does not have FXOR, so FNEG is lowered as

    (bitcast (xor (bitcast x), (bitcast ConstantFP(0x80000000)))).

    In this case we go though all bitcasts.

    This also recognizes splat of a negated value and returns the splat of that

    value.

    Defined at line 55127 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • unsigned int negateFMAOpcode (unsigned int Opcode, bool NegMul, bool NegAcc, bool NegRes)

    Defined at line 55219 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFneg (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Do target-specific dag combines on floating point negations.

    Defined at line 55286 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue lowerX86FPLogicOp (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 55397 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue foldXor1SetCC (SDNode * N, const SDLoc & DL, SelectionDAG & DAG)

    Fold a xor(setcc cond, val), 1 --> setcc (inverted(cond), val)

    Defined at line 55423 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineXorSubCTLZ (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 55436 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineXor (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 55492 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBITREVERSE (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 55583 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAVG (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Various combines to try to convert to avgceilu.

    Defined at line 55611 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBEXTR (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 55635 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isNullFPScalarOrVectorConst (SDValue V)

    Defined at line 55652 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getNullFPConstForNullVal (SDValue V, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    If a value is a scalar FP zero or a vector FP zero (potentially including

    undefined elements), return a zero constant that may be used to fold away

    that value. In the case of a vector, the returned constant will not contain

    undefined elements even if the input parameter does. This makes it suitable

    to be used as a replacement operand with operations (eg, bitwise-and) where

    an undef should not propagate.

    Defined at line 55662 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFAndFNotToFAndn (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 55673 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFAnd (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Do target-specific dag combines on X86ISD::FAND nodes.

    Defined at line 55705 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFAndn (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Do target-specific dag combines on X86ISD::FANDN nodes.

    Defined at line 55722 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFOr (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Do target-specific dag combines on X86ISD::FOR and X86ISD::FXOR nodes.

    Defined at line 55736 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFMinFMax (SDNode * N, SelectionDAG & DAG)

    Do target-specific dag combines on X86ISD::FMIN and X86ISD::FMAX nodes.

    Defined at line 55756 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFMinNumFMaxNum (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 55777 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86INT_TO_FP (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 55850 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineCVTP2I_CVTTP2I (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 55883 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAndnp (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Do target-specific dag combines on X86ISD::ANDNP nodes.

    Defined at line 55921 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBT (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 56068 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineCVTPH2PS (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 56084 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSextInRegCmov (SDNode * N, SelectionDAG & DAG)

    Try to combine sext_in_reg of a cmov of constants by extending the constants.

    Defined at line 56125 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSignExtendInReg (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 56186 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue promoteExtBeforeAdd (SDNode * Ext, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    sext(add_nsw(x, C)) --> add(sext(x), C_sext)

    zext(add_nuw(x, C)) --> add(zext(x), C_zext)

    Promoting a sign/zero extension ahead of a no overflow 'add' exposes

    opportunities to combine math ops, use an LEA, or use a complex addressing

    mode. This can eliminate extend, add, and shift instructions.

    Defined at line 56233 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineToExtendCMOV (SDNode * Extend, SelectionDAG & DAG)

    If we face {ANY,SIGN,ZERO}_EXTEND that is applied to a CMOV with constant

    operands and the result of CMOV is not used anywhere else - promote CMOV

    itself instead of promoting its result. This could be beneficial, because:

    1) X86TargetLowering::EmitLoweredSelect later can do merging of two

    (or more) pseudo-CMOVs only when they go one-after-another and

    getting rid of result extension code after CMOV will help that.

    2) Promotion of constant CMOV arguments is free, hence the

    {ANY,SIGN,ZERO}_EXTEND will just be deleted.

    3) 16-bit CMOV encoding is 4 bytes, 32-bit CMOV is 3-byte, so this

    promotion is also good in terms of code-size.

    (64-bit CMOV is 4-bytes, that's why we don't do 32-bit => 64-bit

    promotion).

    Defined at line 56308 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineExtSetcc (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Attempt to combine a (sext/zext (setcc)) to a setcc with a xmm/ymm/zmm

    result type.

    Defined at line 56355 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSext (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 56400 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue getInvertedVectorForFMA (SDValue V, SelectionDAG & DAG)

    Inverting a constant vector is profitable if it can be eliminated and the

    inverted vector is already present in DAG. Otherwise, it will be loaded

    anyway.

    We determine which of the values can be completely eliminated and invert it.

    If both are eliminable, select a vector with the first negative element.

    Defined at line 56457 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFMA (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 56505 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFMADDSUB (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Combine FMADDSUB(A, B, FNEG(C)) -> FMSUBADD(A, B, C)

    Combine FMSUBADD(A, B, FNEG(C)) -> FMADDSUB(A, B, C)

    Defined at line 56602 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue widenBuildVec (SDNode * Extend, SelectionDAG & DAG)

    Try to widen the build vector and bitcast it to the type of zext.

    This is a special case for the 128-bit vector types. Intention is to remove

    the zext and replace it with a bitcast the wider type. While lowering

    the bitcast is removed and extra commutation due to zext is avoided.

    For example:

    zext v4i16 ( v4i8 build_vector (x, y, z, w)) -> bitcast v4i16 ( v8i8

    build_vector (x, 0, y, 0, z, w, 0)

    Defined at line 56632 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineZext (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 56698 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue truncateAVX512SetCCNoBWI (EVT VT, EVT OpVT, SDValue LHS, SDValue RHS, CondCode CC, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    If we have AVX512, but not BWI and this is a vXi16/vXi8 setcc, just

    pre-promote its result type since vXi1 vectors don't get promoted

    during type legalization.

    Defined at line 56766 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAVX512SetCCToKMOV (EVT VT, SDValue Op0, CondCode CC, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    The pattern (setcc (and (broadcast x), (2^n, 2^{n+1}, ...)), (0, 0, ...),

    eq/ne) is generated when using an integer as a mask. Instead of generating a

    broadcast + vptest, we can directly move the integer to a mask register.

    Defined at line 56783 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSetCC (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 56868 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMOVMSK (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 57196 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineTESTP (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 57313 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86GatherScatter (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 57328 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue rebuildGatherScatter (MaskedGatherScatterSDNode * GorS, SDValue Index, SDValue Base, SDValue Scale, SelectionDAG & DAG)

    Defined at line 57347 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineGatherScatter (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 57371 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86SetCC (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Optimize RES = X86ISD::SETCC CONDCODE, EFLAG_INPUT

    Defined at line 57519 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBrCond (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Optimize branch condition evaluation.

    Defined at line 57533 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVectorCompareAndMaskUnaryOp (SDNode * N, SelectionDAG & DAG)

    TODO: Could we move this to DAGCombine?

    Defined at line 57552 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineToFPTruncExtElt (SDNode * N, SelectionDAG & DAG)

    If we are converting a value to floating-point, try to replace scalar

    truncate of an extracted vector element with a bitcast. This tries to keep

    the sequence on XMM registers rather than moving between vector and GPRs.

    Defined at line 57610 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineUIntToFP (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 57642 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSIntToFP (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 57706 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFPToSInt (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 57827 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFP_TO_xINT_SAT (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Custom handling for VCVTTPS2QQS/VCVTTPS2UQQS

    Defined at line 57839 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFunnelShift (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Combiner: turn uniform-constant splat funnel shifts into VSHLD/VSHRD

    Defined at line 57866 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool needCarryOrOverflowFlag (SDValue Flags)

    Defined at line 57899 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool onlyZeroFlagUsed (SDValue Flags)

    Defined at line 57934 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineCMP (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 57961 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86AddSub (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & ST)

    Defined at line 58108 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSBB (SDNode * N, SelectionDAG & DAG)

    Defined at line 58173 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineADC (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Optimize RES, EFLAGS = X86ISD::ADC LHS, RHS, EFLAGS

    Defined at line 58195 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue matchPMADDWD (SelectionDAG & DAG, SDNode * N, const SDLoc & DL, EVT VT, const X86Subtarget & Subtarget)

    Defined at line 58253 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue matchPMADDWD_2 (SelectionDAG & DAG, SDNode * N, const SDLoc & DL, EVT VT, const X86Subtarget & Subtarget)

    Attempt to turn this pattern into PMADDWD.

    (add (mul (sext (build_vector)), (sext (build_vector))),

    (mul (sext (build_vector)), (sext (build_vector)))

    Defined at line 58363 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAddOfPMADDWD (SelectionDAG & DAG, SDValue N0, SDValue N1, const SDLoc & DL, EVT VT)

    ADD(VPMADDWD(X,Y),VPMADDWD(Z,W)) -> VPMADDWD(SHUFFLE(X,Z), SHUFFLE(Y,W))

    If upper element in each pair of both VPMADDWD are zero then we can merge

    the operand elements and use the implicit add of VPMADDWD.

    TODO: Add support for VPMADDUBSW (which isn't commutable).

    Defined at line 58478 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue pushAddIntoCmovOfConsts (SDNode * N, const SDLoc & DL, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    CMOV of constants requires materializing constant operands in registers.

    Try to fold those constants into an 'add' instruction to reduce instruction

    count. We do this with CMOV rather the generic 'select' because there are

    earlier folds that may be used to turn select-of-constants into logic hacks.

    Defined at line 58522 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue matchVPMADD52 (SDNode * N, SelectionDAG & DAG, const SDLoc & DL, EVT VT, const X86Subtarget & Subtarget)

    Attempt to turn ADD(MUL(x, y), acc)) -> VPMADD52L

    When upper 12 bits of x, y and MUL(x, y) are known to be 0

    Defined at line 58589 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineAdd (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 58633 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSubABS (EVT VT, const SDLoc & DL, SDValue N0, SDValue N1, SelectionDAG & DAG)

    Try to fold (sub Y, cmovns X, -X) -> (add Y, cmovns -X, X) if the cmov

    condition comes from the subtract node that produced -X. This matches the

    cmov expansion for absolute value. By swapping the operands we convert abs

    to nabs.

    Defined at line 58754 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSubSetcc (SDNode * N, SelectionDAG & DAG)

    Defined at line 58803 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineX86CloadCstore (SDNode * N, SelectionDAG & DAG)

    Defined at line 58830 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSub (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 58881 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVectorCompare (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 58943 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • std::optional<unsigned int> CastIntSETCCtoFP (MVT VT, CondCode CC, unsigned int NumSignificantBitsLHS, unsigned int NumSignificantBitsRHS)

    Helper to determine if we can convert an integer comparison to a float

    comparison byt casting the operands.

    Defined at line 58989 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineConcatVectorOps (const SDLoc & DL, MVT VT, ArrayRef<SDValue> Ops, SelectionDAG & DAG, const X86Subtarget & Subtarget, unsigned int Depth)

    Helper that combines an array of subvector ops as if they were the operands

    of a ISD::CONCAT_VECTORS node, but may have come from another source (e.g.

    ISD::INSERT_SUBVECTOR). The ops are assumed to be of the same type.

    Defined at line 59012 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineCONCAT_VECTORS (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 60078 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineINSERT_SUBVECTOR (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 60125 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue narrowExtractedVectorSelect (SDNode * Ext, const SDLoc & DL, SelectionDAG & DAG)

    If we are extracting a subvector of a vector select and the select condition

    is composed of concatenated vectors, try to narrow the select width. This

    is a common pattern for AVX1 integer code because 256-bit selects may be

    legal, but there is almost no integer math/logic available for 256-bit.

    This function should only be called with legal types (otherwise, the calls

    to get simple value types will assert).

    Defined at line 60336 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineEXTRACT_SUBVECTOR (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 60387 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineSCALAR_TO_VECTOR (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 60692 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combinePMULDQ (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Simplify PMULDQ and PMULUDQ operations.

    Defined at line 60834 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVPMADD (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Simplify VPMADDUBSW/VPMADDWD operations.

    Defined at line 60887 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineVPMADD52LH (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Simplify VPMADD52L/VPMADD52H operations.

    Defined at line 60933 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineEXTEND_VECTOR_INREG (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 60967 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineKSHIFT (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 61035 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFP16_TO_FP (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Optimize (fp16_to_fp (fp_to_fp16 X)) to VCVTPS2PH followed by VCVTPH2PS.

    Done as a combine because the lowering for fp16_to_fp and fp_to_fp16 produce

    extra instructions between the conversion due to going to scalar and back.

    Defined at line 61072 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFP_EXTEND (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI, const X86Subtarget & Subtarget)

    Defined at line 61094 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineBROADCAST_LOAD (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Try to find a larger VBROADCAST_LOAD/SUBV_BROADCAST_LOAD that we can extract.

    Defined at line 61189 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineFP_ROUND (SDNode * N, SelectionDAG & DAG, const X86Subtarget & Subtarget)

    Defined at line 61223 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineMOVDQ2Q (SDNode * N, SelectionDAG & DAG)

    Defined at line 61314 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combinePDEP (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 61334 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue FixupMMXIntrinsicTypes (SDNode * N, SelectionDAG & DAG)

    Fixup the MMX intrinsics' types: in IR they are expressed with

    <

    1 x i64>,

    and so SelectionDAGBuilder creates them with v1i64 types, but they need to

    use x86mmx instead.

    Defined at line 61347 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineINTRINSIC_WO_CHAIN (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 61382 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineINTRINSIC_W_CHAIN (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 61396 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • SDValue combineINTRINSIC_VOID (SDNode * N, SelectionDAG & DAG, TargetLowering::DAGCombinerInfo & DCI)

    Defined at line 61410 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • CondCode parseConstraintCode (StringRef Constraint)

    ===----------------------------------------------------------------------===//

    X86 Inline Assembly Support

    ===----------------------------------------------------------------------===//

    Defined at line 61839 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isGRClass (const TargetRegisterClass & RC)

    Check if

    is a general purpose register class.

    I.e., GR* or one of their variant.

    Defined at line 62307 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isFRClass (const TargetRegisterClass & RC)

    Check if

    is a vector register class.

    I.e., FR* / VR* or one of their variant.

    Defined at line 62317 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool isVKClass (const TargetRegisterClass & RC)

    Check if

    is a mask register class.

    I.e., VK* or one of their variant.

    Defined at line 62328 of file llvm/lib/Target/X86/X86ISelLowering.cpp

  • bool useEGPRInlineAsm (const X86Subtarget & Subtarget)

    Defined at line 62338 of file llvm/lib/Target/X86/X86ISelLowering.cpp